URL GET/POST请求目标-c

kos*_*aks 4 url post get objective-c request

我必须向localhost发送get或post请求:

<?php
 if(@$_GET['option']) {
  echo "You said \"{$_GET['option']}\"";
 }else if(@$_POST['option']) {
  echo "You said \"{$_POST['option']}\"";
 }
?>
Run Code Online (Sandbox Code Playgroud)

我用这个代码:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost/wsh/index.php?option=Hello"]];
 NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
 NSString *get = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

它有效,但有一次在代码中.如果生病了另一次,申请已经终止.

我尝试使用ASIFormDataRequest:

ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:@"http://localhost/wsh/index.php"] autorelease];
[request setPostValue:@"option" forKey:@"myFormField1"];
[request start];
NSError *error = [request error];
if (!error) {
  NSString *response = [request responseString];
  NSLog(response);
}else{
  NSLog(@"error");
}
Run Code Online (Sandbox Code Playgroud)

它说:

2010-01-07 13:20:34.964 WSH[3351:903] -[NSCFString absoluteURL]: unrecognized selector sent to instance 0x160f8
2010-01-07 13:20:34.966 WSH[3351:903] error
Run Code Online (Sandbox Code Playgroud)

我的英语

Nik*_*uhe 8

您正在使用NSString需要NSURL对象的普通文字:[...] initWithURL:@"http://localhost/wsh/index.php"[...]

将此更改为initWithURL:[NSURL URLWithString:@"http://localhost/wsh/index.php"].


epa*_*tel 6

我想知道你是否也应该为post值切换值和键,即改变行

[request setPostValue:@"option" forKey:@"myFormField1"];
Run Code Online (Sandbox Code Playgroud)

[request setPostValue:@"myFormField1" forKey:@"option"];
Run Code Online (Sandbox Code Playgroud)