web服务是在Python的Ladon框架上构建的。在
Web服务URL是:http://ladonize.org/python-demos/Calculator
调用web服务的代码如下:
NSString *requestString = [NSString stringWithFormat:
@"http://ladonize.org/python-demos/Calculator"];
NSString *jsonString = [NSString stringWithFormat:@"{\"methodname\":\"add\",\"args\": {\"a\":\"123\",\"b\":\"123\"}}"];
NSData *jsonData = [NSData dataWithBytes: [jsonString UTF8String] length: [jsonString length]];
NSURL *url = [NSURL URLWithString:requestString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody: jsonData];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
NSError *errorReturned = nil;
NSURLResponse *theResponse =[[NSURLResponse alloc]init];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&errorReturned];
if (errorReturned) {
NSLog(@"Error %@",errorReturned.description);
}
else
{
NSError *jsonParsingError = nil;
NSMutableArray *arrDoctorInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&jsonParsingError];
NSString* newStr = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"Dict %@",newStr);
}
我得到如下回应
^{pr2}$
看起来您使用的URL路径错误,应该改为
http://ladonize.org/python-demos/Calculator/jsonwsp
。在创建
jsonData
的更好方法是使用dataUsingEncoding:
。在您不应该创建响应:
因为它将被创建并作为
sendSynchronousRequest
的一部分返回给您。您应该检查theResponse
的内容,以验证HTTP状态代码。在这是有效的解决方案。。。在
相关问题 更多 >
编程相关推荐