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

这将返回以下错误

失败并出现错误 Error Domain=AFNetworkingErrorDomain Code=-1011 “预期状态代码在 (200-299),得到 400” UserInfo=0xa363550 {NSLocalizedRecoverySuggestion={"code":107,"error":"bad www-form-urlencoded 数据"}

有人能指出我调试这些东西的正确方向吗?-一个

4

1 回答 1

1

Content-Type应该application/json或可能text/plain代替。如果一切都失败了,请尝试application/octet-stream(原始二进制数据)。

于 2013-02-01T14:45:09.417 回答