当前位置:  开发笔记 > IOS > 正文

NSURLRequest - 为NSURLRequest POST Body编码url(iPhone objective-C)

如何解决《NSURLRequest-为NSURLRequestPOSTBody编码url(iPhoneobjective-C)》经验,为你挑选了1个好方法。

我正在使用NSURLRequest发送帖子.

NSURL *url = [NSURL URLWithString:someUrlString];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [parameterString length]];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [parameterString dataUsingEncoding:NSUTF8StringEncoding]];

在请求正文中,我正在编码以下NVP:

returnURL = http://someSite.com

帖子成功通过,但我收到了错误.该错误表示无效的网址.

所以,我把它改为:

RETURNURL = HTTP:%2F%2FsomeSite.com

有同样的错误.

我还与Todd Ditchendorf的HTTP客户端进行了双重检查,结果相同.

我知道我必须编码这个错误可以有人告诉我我做错了什么吗?

谢谢科里

**更新:感谢那些回答的人.我的NVP值中错过了&符号.当然,一旦我修好了,一切都很好.我怀疑的是,帖子正文中的网址编码是不正确的.我没有使用ASIHTTPRequest框架,但它确实帮助我解决了问题(对于我需要的东西而言是过度杀伤).**



1> Alex Reynold..:

考虑使用Ben Copsey的ASIHTTPRequest框架来生成和发送同步和异步HTTTP请求(POST和GET):

ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:@"http://someSite.com"] autorelease];
[request setPostValue:@"myValue1" forKey:@"myFormField1"];
[request setPostValue:@"myValue2" forKey:@"myFormField2"];
// etc.
[request start];
NSError *error = [request error];
if (!error)
  NSString *response = [request responseString];

他的框架节省了大量时间.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有