我是ASIHTTPRequest的新手,我在实现表单方面遇到了问题。 目前我在UIWebForm中使用以下代码,一切正常。
NSString *body = @"\
<html> \
<head> \
<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=iso-8859-1\"> \
</head> \
<body>\
<form name=\"my_form\" action=\"http://www.server.com/ar?
ca=11_s&id=22630957\" \
method=\"POST\" enctype=\"multipart/form-data\"> \
<input type=\"text\" name=\"name\" value=\"myname\"> \
<input type=\"text\" name=\"email\" value=\"mym...@gmail.com\"> \
<textarea name=\"body\">My message</textarea> \
<input type=checkbox name=\"sendercc\" value=\"0\"> \
<input type=\"submit\" name=\"send\" value=\"Send\"> \
</table> \
</form> \
</body>\
</html>";
应该替换表单的(不工作)代码如下:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:
[[[NSURL alloc] initWithString:@"http://www.server.com/ar?
ca=11_s&id=22630957"] autorelease]];
[request setResponseEncoding:NSISOLatin1StringEncoding];
[request setPostFormat:ASIMultipartFormDataPostFormat];
[request setPostValue:@"myname" forKey:@"name"];
[request setPostValue:@"mymail@gmail.com" forKey:@"email"];
[request setPostValue:@"My message" forKey:@"body"];
[request setPostValue:@"0" forKey:@"sendercc"];
[request startSynchronous];
答案 0 :(得分:1)
你能解释一下它不起作用的更多信息吗?如果检查request.responseString?
,是否从服务器返回错误?您可能需要为提交按钮添加值,即:
[request setPostValue:@"Sent" forKey:@"send"];
如果这样做无效,请尝试使用CharlesProxy这样的代理来捕获浏览器的工作请求和不工作的iphone请求,并比较它们以寻找任何差异。