2011-03-07 49 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

相關問題