XCode GET POST WebServer

时间:2013-04-03 06:42:12

标签: html objective-c webserver nsurlrequest

我是Xcode的初学者。我必须做一个从我在微控制器MICROCHIP中设计的嵌入式web服务器获取和发送数据的应用程序。 现在我可以从网络服务器获取信息(在我的网络服务器中,我有一个/status.xml文件,其中包含所有动态变量)

现在我无法点击按钮。单击按钮的HTML代码是

onmousedown="newAJAXCommand('buttons.cgi?btn=1')"

在我的网络服务器中,我有一个文件buttons.cgi

我的目标是在Xcode中设计了一个按钮来执行此操作

我尝试使用NSMutableURLRequest类和SetHTTPMethod:@"GET"@"POST",但此代码不起作用

    NSString *post = @"btn=1";
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES ];
    NSString *Get_lenght = [NSString stringWithFormat:@"%d",[postData length]];
    NSURL *serviceURL = [NSURL URLWithString:@"http://mywebserver.com/buttons.cgi?"];
    NSMutableURLRequest *serviceRequest = [NSMutableURLRequest requestWithURL:serviceURL];
    [serviceRequest setValue:Get_lenght forHTTPHeaderField:@"Content-type"];
    [serviceRequest setHTTPMethod:@"POST"];
    [serviceRequest setHTTPBody:postData];

1 个答案:

答案 0 :(得分:1)

代码中有多个错误:

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES ];

为什么不使用UTF-8?

NSString *Get_lenght = [NSString stringWithFormat:@"%d",[postData length]];
[serviceRequest setValue:Get_lenght forHTTPHeaderField:@"Content-type"];

您无法将Content-Type设置为整数。

最后,您没有发送NSMutableURLRequest。要发送请求,请使用:

NSString *response;
NSError *error;
[NSURLConnection sendSynchronousRequest:serviceRequest returningResponse:&response error:&error];

如果您需要,response将包含响应数据;并且error在请求期间将包含错误&响应,如果有任何错误。