我正在使用同步方法发送nsurlconection请求,如下所示。 它与模拟器一起工作正常但不能在设备上工作。
这是我的代码
/////// FOR POST
NSString *postData=[NSString stringWithFormat:@"message=%@",
[[dicGlobal valueForKey:@"giftMessage"] stringByURLEncode]];
NSData *myRequestData = [ NSData dataWithBytes: [ postData UTF8String ] length: [ postData length]];
NSLog(@"%@",myRequestData);
NSURL *url=[NSURL URLWithString:strUrl];
NSMutableURLRequest *request=[[NSMutableURLRequest alloc] initWithURL:url];
[ request setHTTPMethod: @"POST" ];
[ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[ request setHTTPBody: myRequestData ];
NSURLResponse *response;
NSError *error;
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error];
if (returnData) {
NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
NSLog(@"%@",content);
TBXML *tbxml=[TBXML tbxmlWithXMLString:content];
请检查我的代码并帮助我解决问题所在。
谢谢&问候 Shivam
答案 0 :(得分:0)
在这一行:
NSURL *url=[NSURL URLWithString:strUrl];
什么是strUrl。声明和分配在哪里?
我不确定,但看起来您的网址可以通过Mac访问(也许它是您网络上的资源),但不是来自您的设备。 (您的设备通过其他Wi-Fi网络或3G连接?)。
尝试从Mac创建Wi-Fi网络,并将设备连接到此网络。 希望这可以解决问题。
答案 1 :(得分:-1)
实施此代码
NSString *postData=[NSString stringWithFormat:@"message=%@",
[[dicGlobal valueForKey:@"giftMessage"] stringByURLEncode]];
NSData *myRequestData = [ NSData dataWithBytes: [ postData UTF8String ] length: [ postData length]];
NSLog(@"%@",myRequestData);
NSURL *url=[NSURL URLWithString:strUrl];
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
[ request setHTTPMethod: @"POST" ];
[ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[ request setHTTPBody: myRequestData ];
NSURLResponse *response;
NSError *error;
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error];
if (returnData) {
NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
NSLog(@"%@",content);
TBXML *tbxml=[TBXML tbxmlWithXMLString:content];