2011-03-07 52 views
0

我是ASIHTTPRequest的新手,并且遇到了实现表单的问题。 目前我在UIWebForm中使用下面的代码,一切正常。使用ASIHTTPRequest POST多部分/表单数据

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=\"[email protected]\"> \ 
    <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:@"[email protected]" forKey:@"email"]; 
     [request setPostValue:@"My message" forKey:@"body"]; 
     [request setPostValue:@"0" forKey:@"sendercc"]; 
     [request startSynchronous]; 

回答

1

你能解释一下它是如何不起作用?如果您检查request.responseString,是否从服务器返回错误?

您可能需要添加值提交按钮,即:

[request setPostValue:@"Sent" forKey:@"send"]; 

如果不帮助,请尝试使用像CharlesProxy代理同时捕获从浏览器和非工作要求工作iPhone的请求,并比较他们寻找任何差异。

+0

是的,这是失踪的一块!感谢代理,可以非常有用。 – user647838 2011-03-07 22:59:22

相关问题