既存のPOST
NSURLRequest
にデータを追加するにはどうすればよいですか?新しいパラメーターuserId=2323
を追加する必要があります。
サードパーティのクラスを使用したくない場合は、投稿本文の設定方法を以下に示します...
NSURL *aUrl = [NSURL URLWithString:@"http://www.Apple.com/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"company=Locassa&quality=AWESOME!";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request
delegate:self];
キーと値のペアを投稿文字列に追加するだけです
NSMutableURLRequest
へのすべての変更は、NSURLConnection
を呼び出す前に行う必要があります。
上記のコードをコピーして貼り付けてTCPMon
を実行すると、この問題が発生し、要求がGET
ではなくPOST
であることがわかります。
NSURL *aUrl = [NSURL URLWithString:@"http://www.Apple.com/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"company=Locassa&quality=AWESOME!";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request
delegate:self];
NSURL *url= [NSURL URLWithString:@"https://www.Paypal.com/cgi-bin/webscr"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"userId=2323";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
上記のサンプルコードは本当に役に立ちました(上記で示唆したように)、NSMutableURLRequest
ではなくNSURLRequest
を使用する必要があると思います。現在の形式では、setHTTPMethod
呼び出しに応答することができませんでした。タイプを変更すると、問題が直ります。
Swiftソリューションを探している人
let url = NSURL(string: "http://www.Apple.com/")
let request = NSMutableURLRequest(URL: url!)
request.HTTPBody = "company=Locassa&quality=AWESOME!".dataUsingEncoding(NSUTF8StringEncoding)