3

ASIHTTPRequestからAFNetworkingに移行していますが、問題が発生しました。

postパラメーターをオーバーロードするリクエストでAPIをヒットしようとしています。以前はこれにASIFormDataRequestを使用しており、このコードを使用して3つのIDを同時に更新していました。

// ASIHTTPRequestCode
[request addPostValue:@"value1" forKey:@"id"];
[request addPostValue:@"value2" forKey:@"id"];
[request addPostValue:@"value3" forKey:@"id"];

AFNetworkingはNSDictionaryを使用してキーと値のペアを格納するため、これを行う方法は簡単ではないようです。何か案は?

4

3 に答える 3

1

AFNetworkingでこれを行う直接的な方法はすぐにはわかりませんが、それは可能です。

のコードを見ると、次のAFHTTPClient requestWithMethod行が表示されます。これは、パラメータを含むようにリクエスト本文を設定する行です。

 [request setHTTPBody:[AFQueryStringFromParametersWithEncoding(parameters, self.stringEncoding) dataUsingEncoding:self.stringEncoding]];

基本的に、パラメータ用に空の辞書を渡すことができrequestWithMethodます。その後、それが返され、自分自身を呼び出しrequest setHTTPBody、クエリ文字列を自分で作成するのと同じ方法で作成しますAFQueryStringFromParametersWithEncoding

于 2012-03-15T19:36:12.663 に答える
0

次の方法でリクエストを作成できます。

NSURL *url = [NSURL URLWithString:@"http://www.mydomain.com/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

NSDictionary *postValues = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"%@,%@,%@",@"value1",@"value2",@"value3"] forKey:@"id"];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/path/to/your/page.php" postValues];
于 2012-03-15T06:04:01.743 に答える
0

同様の問題に直面していましたが、URLを更新することで解決しました。URLで送信する必要のあるパラメーターを追加し、「パラメーターをnil」に設定しました

したがって、URLは次のようになります

server\url.htm?data=param1&data=param2&data=param3

paramDictionaryとしてnilを送信しました

[request setHTTPBody:[AFQueryStringFromParametersWithEncoding(nil, self.stringEncoding) dataUsingEncoding:self.stringEncoding]];
于 2012-11-14T14:18:19.757 に答える