【发布时间】:2017-02-11 22:55:37
【问题描述】:
我正在使用一个使用 HTTP 的 SMS 网关。我使用有关 stackoverflow 等的教程和问题创建了一个请求,但出现了问题。当我手动输入 URL 时,我可以毫无问题地使用网关,但我无法以编程方式执行此操作,所以我认为我的代码可能不正确。感谢任何帮助!
NSString *post = [NSString stringWithFormat:@"user=%@&password=%@&api_id=%@&to=%@&text=%@",_username,_password,_apiID,[_numbers componentsJoinedByString:@","],_txtMsg.text];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://api.mySmsGateWay.com/http/sendmsg"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *responseCode = nil;
NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];
if([responseCode statusCode] != 200){
NSLog(@"Error getting, HTTP status code %i", [responseCode statusCode]);
}
NSLog (@"%@", [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding]);
【问题讨论】:
-
你检查请求头了吗?确保您不必设置与身份验证或应用程序/json 相关的参数。
-
使用浏览器时,只需将我在(NSString post)中写的参数添加到URL就足够了。
-
试试 NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];。并关心 URL Encode stackoverflow.com/questions/8088473/…
-
很遗憾没有用。但我注意到一个警告,它告诉我们“sendSynchronousRequest”已被弃用。
-
Cameloper 检查我的以下答案。
标签: ios objective-c http post