質問

ASIHTPRequestからAFNETWORKENTに移行しており、問題に遭遇しました。

POSTパラメータを過負荷にするリクエストでAPIを押しようとしています。私は以前にこれをasiformDatarequestを使用していました、そしてこのコードを使用して3番目のIDを同時に更新しました。

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

AFNETSWORKINGはNSDictionaryを使用してキー値のペアを保存するため、これを行う方法を簡単にしません。任意のアイデア?

役に立ちましたか?

解決

AFNETSWORKINGでこれを行う直接的な方法をすぐに見ることはできませんが、そうすることは可能です。

AFHTTPClient requestWithMethodのコードを見ると、この行が表示されます。これは、要求本文を設定するように設定するものです。

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

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

他のヒント

このようにリクエストを作成することができます:

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];
.

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

に設定しました。

だからURLは

のようなものになりました
server\url.htm?data=param1&data=param2&data=param3
.

をパラメータ

としてNILを送信しました
[request setHTTPBody:[AFQueryStringFromParametersWithEncoding(nil, self.stringEncoding) dataUsingEncoding:self.stringEncoding]];
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top