2

私は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);

コードは機能しますか?コードを見逃しましたか?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
4

1 に答える 1

7

このように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"];

API自体がユーザーエージェントを設定しますが、自分で設定することもできます

request.allowCompressedResponse = NO;
request.useCookiePersistence = NO;
request.shouldCompressRequestBody = NO;
[request setPostBody:[NSMutableData dataWithData:[jsonRequest  dataUsingEncoding:NSUTF8StringEncoding]]];
[request startSynchronous];
于 2012-10-15T08:51:46.477 に答える