0

以下のようなPOSTメソッドを使用して、HTTTPRestfulWebサービスで配列リストとしてキーペア値を送信するためのサンプルコードがあります。

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

iPhoneObjective-Cで同じものを実装する方法。どんなアイデアでもありがたい...

4

2 に答える 2

0

プロジェクトに JSON ライブラリを含めます。キーと値のペアを JSOn フラグメントに分解し、POST 経由で送信する必要があります。

 NSMutableDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                               @"12345",@"id",
                                               @"Hi",@"stringData",
                                                 ,nil]; 




            //Pass it twice to escape quotes
            NSString *jsonString = [NSString stringWithFormat:@"%@", [dictionary JSONFragment], nil];
            NSString *requestString = [NSString stringWithFormat:@"%@",jsonString,nil];
            NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: [requestString length]];
            NSString *urlstr=[NSString stringWithFormat:@"your URL"];

            str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
            NSURL *url=[NSURL URLWithString:str];

            NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
            NSURLResponse *response = nil;
            NSError *error = nil;

            NSString *postLength = [NSString stringWithFormat:@"%d", [requestData length]];
            [request setHTTPMethod: @"POST"];
            [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
            [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
            [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
            [request setHTTPBody: requestData];

            NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error ];
            NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

    NSLog(@"your response %@",returnString);
于 2012-09-14T11:54:53.413 に答える
0

私はまともなネットワーク クライアントを書きました。ぜひ使ってください。処理に AFNetworking を使用し、非常にうまく機能します。こちらをご覧ください。

于 2012-09-14T12:02:40.990 に答える