Tan*_*Tan 2 json asihttprequest ios
我打算发布json数据:
NSString *newJSON = [theDictionary JSONRepresentation];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:ADDRESS,action]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[newJSON dataUsingEncoding:NSUTF8StringEncoding]];
[request startSynchronous];
NSString *responseString = [request responseString];
NSMutableDictionary* responseDict = [responseString JSONValue];
NSLog(@"responseString = %@",responseString);
Run Code Online (Sandbox Code Playgroud)
代码是否有效?我错过了一些代码吗?我读了asihttprequest教程,发现它总是用asiformdatarequest发布数据,asihttprequest和asiformdatarequest之间的区别是什么,如果我只想发布json数据,我该怎么办?提前谢谢你.
更新:是的,它工作,但不能很好地工作,我使用一些工具测试数据,并收到一些额外的数据:
POST / HTTP/1.1
Host: 192.168.0.113
User-Agent: Ushi.com/1.0 CFNetwork/548.1.4 Darwin/11.3.0
Content-Length: 58
Run Code Online (Sandbox Code Playgroud)
您可以像这样以json格式发布文本数据
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Accept" value:@"application/json"];
[request addRequestHeader:@"content-type" value:@"application/x-www-form-urlencoded"];
[request addRequestHeader:@"User-Agent" value:@"iPad"];
Run Code Online (Sandbox Code Playgroud)
API本身设置了用户代理,尽管您也可以自己设置它
request.allowCompressedResponse = NO;
request.useCookiePersistence = NO;
request.shouldCompressRequestBody = NO;
[request setPostBody:[NSMutableData dataWithData:[jsonRequest dataUsingEncoding:NSUTF8StringEncoding]]];
[request startSynchronous];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7089 次 |
| 最近记录: |