如何通过asihttprequest向API提交请求

时间:2013-10-25 06:37:20

标签: c# ios

我想使用ASIHTTPREQUEST通过ios应用程序提交API表单。我的问题是当我点击提交或发送按钮时没有任何反应。我已经完成了将发送按钮连接到我的视图控制器。实际上,我想做的事情是通过使用我自己的托管服务器进行消息传递应用程序,该服务器必须发布uuid和密码值来提交请求。这是我的实现代码。

      - (IBAction)sendClicked:(id)sender {

    [sendButton resignFirstResponder];
     {        
   ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL          URLWithString:@"https://cc.frifon.net_dosmssend/"]];
[request setDelegate:self];
[request setNumberOfTimesToRetryOnTimeout:3];
[request setRequestMethod:@"POST"];  
[request setPostValue:USERNAME forKey:@"sip"];
[request setPostValue:PASSWORD forKey:@"pwd"];
[request setPostValue:UUID forKey:@"uuid"];
[request setPostValue:API_PASSWORD forKey:@"key"];
[request setPostValue:messageText forKey:@"message"];
[request setPostValue:NUMBER forKey:@"to"];
[request setPostValue:@"Submit" forKey:@"submit"];
[request start];
nil;

   [request startAsynchronous];
    NSError *error = [request error];
if (!error) {
    NSString *response = [request responseString];
    messageText.text = response;}
    }
    }
     @end

我还想获取已发送的消息列表。非常感谢那些回答这个问题的人。

1 个答案:

答案 0 :(得分:1)

在StartAsynchronious之后,您无法读取错误属性。您必须等待接收来自ASIHTTP的委托协议的消息

在您的课程上实施此协议

- (void)requestFinished:(ASIHTTPRequest *)request {
   NSLog(@"Response %d ==> %@", request.responseStatusCode, [request responseString]);
}

如果您选择,您还可以处理其他方法,例如:

- (void)requestStarted:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;