ASIHTTPRequest setPostValue iPhone

Posted

技术标签:

【中文标题】ASIHTTPRequest setPostValue iPhone【英文标题】: 【发布时间】:2012-01-26 19:54:22 【问题描述】:

我正在访问服务器上的 php 脚本。 请求网址是这样的:

 example.com/cgi-bin/getEvent.cgi?EID=19573

当我通过浏览器输入请求时,我得到了预期的结果。

但是,当我使用 ASIHTTP 表单请求时,我得到了一个结果 就像 EID 没有通过 HTTP 传递一样。

NSString *eventID = @"19573";
NSString * const EVENT_URL = @"http://example.com/cgi-bin/getEvent.cgi";

-(void)callWebservice

    NSURL *url = [NSURL URLWithString:EVENT_URL];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:eventID forKey:@"EID"];
    [request setNumberOfTimesToRetryOnTimeout:2];
    [request setDelegate:self];
    [request startAsynchronous];

有人知道查看请求的完整 URL 的方法吗? 或者有任何线索为什么这不起作用?

提前致谢。

【问题讨论】:

【参考方案1】:

我的猜测是您的 PHP 脚本期望参数在查询字符串中发送(即作为 GET 请求)而不是作为 POST 参数。

如果是这种情况,您可以通过如下方式发送您的请求来修复它:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?EID=%@",EVENT_URL,eventID]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

【讨论】:

以上是关于ASIHTTPRequest setPostValue iPhone的主要内容,如果未能解决你的问题,请参考以下文章

ASIHttpRequest 调用 Restful Web 服务?

异步添加图像 - ASIHTTPRequest

IOS-网络(ASIHTTPRequest的使用简介)

IOS开发 REST请求 ASIHTTPRequest用法

覆盖 ASIHTTPRequest 的方法

带有 ASIHTTPRequest 的 ARC