Smart CODE
生成済みコードに関するオンラインガイド

URL

概要

C および C++ URL ソフトウェアは、インターネットリソースにアクセスする必要のある thin クライアントインタフェースおよびアプリケーションのために開発されています。従来、Java への移行を容易にするため、またすべてのターゲット間で共通の API を保持するために、Java(TM) URL および URLConnection クラスをモデルにしてきました。

C と C++ の実装は、この目的に合っており、インタフェースに書き込まれたものは簡単に Java に移行できます。ただし、これはJava API の完全な実装ではなく、Java アプリケーションを C でコーディングし直すためのものではありません。

言語の相違点の概要
言語 使用法 コメント
Java
     import java.io.*;
     import java.net.*;

     void mymethod( String myurl)
     {
        URL u             = new URL(myurl);
        InputStream i     = u.openStream();
        DataInputStream d = new DataInputStream( i);
                // データを処理する
     }
 
C++
     #include "URL.h"

     void
     myclass::mymethod( char * myurl)
     {
        URL * u = new URL( myurl);
        InputStream * i = u->openStream();
        DataInputStream * d = new DataInputStream( i);
                // データを処理する
        delete d;
        delete u;
     }
  • オブジェクトはポインタ

  • (URL * u および u->openStream()) 
  • 削除する必要がある。収集された不要データではない。 
  • C
         #include "URL.h"
    
         void
         myfunction( char * myurl)
         {
            URL * u = newURL( myurl);
            InputStream * i = (*u->openStream)( u);
            DataInputStream * d = newDataInputStream(i);
                    /* データを処理する */
            (*d->delete)( d);
            (*u->delete)( u);
         }
  • オブジェクトはポインタ

  • (URL * u) 
  • コンストラクタは newType() 書式の関数 
  • 公開メソッドはオブジェクト内の関数ポインタ。 オブジェクト自体が次の例のように呼び出しの第 1 引数でなければならない。

  • (*d->delete)( d); 
  • 削除する必要がある。収集された不要データではない。 
  • 入力および出力ストリームの同様の例に、上記の例でデータが処理される方法を示しています。

    形式

    次のクラス (および C オブジェクト) が使用可能です。括弧は、そのクラスまたはオブジェクトが非公開の実装構造で、公開 API には準拠しない可能性があることを示しています。
    URL
    URLConnection abstract
    (SocketURLConnection) abstract
    HttpURLConnection
    FileURLConnection
    (URLSocket)
    (HttpHeader)
    (ProxyNameList)

    説明

    FileURLConnection

    FileURLConnection は、ファイル I/O のための抽象 URLConnection を実現します。URLConnection* オブジェクトには URL インタフェースからアクセスします。 

    内部: HttpHeader

    HttpHeader は、内部オブジェクトで、Web サーバーから返されたヘッダー情報を解析します。 

    HttpURLConnection

    HttpURLConnection は、HTTP I/O のための抽象 URLConnection を実現します。URLConnection* オブジェクトには URL インタフェースからアクセスします。 

    内部: ProxyNameList

    ProxyNameList は、内部オブジェクトで、プロキシの使用および直接接続されるホストを管理します。 

    内部: SocketURLConnection (abstract)

    SocketURLConnection は、 HttpURLConnection によって使用される抽象クラスです。 

    URL

    URL は、URL リソースにファイルとしてローカルに接続したり、インターネット上の Web サーバーから接続するときに、接続の確立と管理のために使用するクラスです。
    コンストラクタ
    C++
     
    C
     
    公開メソッド
  • URLConnection* openConnection(); 
  • URLConnection* getConnection(); 

  • 現行の URLConnection の取得 
    C バージョン: getConnection(URL*)
  • InputStream* openStream(); 

  • 単純な URL アクセスの場合、ストリームを開き、戻りデータのハンドルを取得できます。データの送信やより高度な制御が必要な場合は、URLConnection に直接アクセスする必要があります。 
    C バージョン: openStream(URL*)
  • InputData* getContent(); 

  • 特殊な公開メソッドです。Java API では使用できません。これを使用すると、InputStream をバイパスして URL からデータとデータサイズを抽出できます。 
    C バージョン: getContent(URL*)

    URLConnection (abstract)

    URLConnection は、URL へのアクセスと書き込みを行う公開メソッド用のインタフェースを定義する抽象クラスです。
  • OutputStream* getOutputStream()
  • InputStream* getInputStream()
  • InputData* getContent()
  • void setDoOutput( int set)
  • void setDoInput( int set)
  • void setAllowUserInteraction( int set)
  • char* getContentType()
  • int getContentLength()
  • 内部: URLSocket

    URLSocket は、ソケット I/O を管理する内部クラスです。