0

現在、.NetアプリをObjectiveCとCocoaに移植しようとしています。私は基本を知っていて、ほとんどのことにほとんど問題がありませんでした。しかし、Webからデータを取得するのに問題があります。

C#では、POSTとGETを使用して、サーバーから情報を取得します。

byte[] buffer = Encoding.ASCII.GetBytes("someData");

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("url");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;

Stream postData = request.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());

while (!reader.EndOfStream)
{
   String data = read.ReadLine();
   //Do something such as an update on each line read in
}

reader.Close();
response.Close(); 

しかし、私はココアの同等物を見つけるのにあまり運がありません。NSUrlDownloadなどの使用法を見てきましたが、私が見つけることができるすべての例は、常に単一のブロッキング関数呼び出しとしてデータのダウンロードを示しています。私が必要としているのは、データを受け取ったときに更新できるようにすることです。すべてが到着するのを待ってから処理するだけではありません。そして理想的には、テキストやバイナリなどのさまざまなタイプのデータを処理できるので、ある種のパーサーに渡すことができるストリームに似たものが必要です。

だから私の質問は、上記のC#コードの同等物は何ですか?

4

1 に答える 1

3

NSURLConnectionオブジェクトをデリゲートとして使用して割り当てる必要があります。接続はデータを受信すると、-connection:didReceiveData:必要に応じて着信データを処理するために使用できるデリゲートメソッドを呼び出します。

HTTPPOSTリクエストを自分で作成する必要があります。この質問への回答で、これを行う方法を示すコードをいくつか投稿しました。

于 2010-05-05T12:50:38.753 に答える