0

私はcurlリクエストを移植しようとしています:

curl -X POST -H [header stuff]  -d '{"key":"value"}' [host] 

NSMutableUrlRequestに。これまでのところ正常に機能しているものを取り除き、問題の原因となっているもの、つまり-d'{"key":"value"}'のみを保持しました。他のヘッダー部分は問題ありません。

curlマニュアルによると、-dは、ペイロードがapplication / x-www-form-urlencoded形式で送信されることを意味するため、次のようにしました。

    NSString* post =   @"{\"key\":\"value\"}";
    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    [_request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [_request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [_request setHTTPMethod:@"POST"];
    [_request setHTTPBody:postData];

これは次のエラーを返します

エラーで失敗しましたErrorDomain= AFNetworkingErrorDomain Code = -1011 "Expected status code in(200-299)、got 400" UserInfo = 0xa363550 {NSLocalizedRecoverySuggestion = {"code":107、 "error": "bad www-form-urlencoded data "}

このようなものをデバッグするために、誰かが私を正しい方向に向けることができますか?-A

4

1 に答える 1

1

Content-Typeあるべきapplication/jsonか、多分text/plain代わりに。他のすべてが失敗した場合は、application/octet-stream(生のバイナリデータ)を試してください。

于 2013-02-01T14:45:09.417 に答える