如何使用ASIHttp从iPhone发布值?

时间:2011-03-04 16:22:07

标签: c# iphone asp.net objective-c asihttprequest

我想将我的iPhone应用程序中的一些值发送到服务器中的ASp.Net网页。我正在使用asihttp。它处理请求并在服务器上调用页面。但是在服务器端没有检索到任何值。以下是iPhone应用程序的代码。

NSURL *url = [NSURL URLWithString:urlString];

    ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:@"abc" forKey:@"from"];
    [request setPostValue:@"abc" forKey:@"name"];
    [request setPostValue:@"abc" forKey:@"phone"];
    [request setDelegate:self];
    [request startSynchronous];

在服务器端,我使用的是asp.net c#。这是用于重现值的代码。但我得到了emtpy string?

sendMail(Request.QueryString["name"],Request.QueryString["from"],Request.QueryString["phone"]);

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我认为Request.QueryString["name"]不会检索post参数。您需要更改ASIHttpRequest以在查询字符串中包含参数,或修改ASP.NET代码以期望发布参数。

您可以在服务器端尝试Request.Form["name"]Request.Form["phone"]等。

或者,您可以尝试:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?name=%@&...",urlString,name,...];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

在客户端。

答案 1 :(得分:0)

QueryString用于URL中的值。一个帖子将在Request.Form中有值,或者只有Request,它将搜索QueryString&形式为价值观。

有关QueryString与Form的更多细节的另一个问题。

Request["key"] vs Request.Params["key"] vs Request.QueryString["key"]