2011-02-08 190 views
1

我有用于将数据上传到远程服务器下面的代码:发送POST请求后身体不发送到服务器

NSString *urlStr = [[NSString alloc] initWithFormat: @"http://www.myserver.com/%@",program ]; 
    NSString *postBody =[[NSString alloc] initWithFormat:@"uid=%@",parms]; 
    NSMutableURLRequest *request; 
    NSData *postData = [postBody dataUsingEncoding:NSISOLatin1StringEncoding]; 
    NSError *error; 
    NSURLResponse *response; 
    NSData *dataReply; 

    request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:urlStr]]; 
    [request setHTTPMethod: @"POST"]; 
    [request setHTTPBody:postData]; 

    dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    serverResponse = (NSString *)[[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding]; 
    [postBody release]; 
    [urlStr release]; 

程序是php程序在服务器上运行。 parms是将要发布的字符串格式:

\ntoken=12345 

以下是问题所在:从模拟器可以正常工作。它适用于我的3gs开发手机。它可以在我通过电子邮件发送应用程序的beta测试人员3gs手机上正常工作。它在另一个beta测试者的iPhone 4上无法正常工作(通过电子邮件发送给他完全相同的配置文件和ipa文件)。 POST电话是从iPhone 4发送到服务器的,但是没有邮件主体通过。我将每个呼叫记录到服务器上的服务器上。帖子主体是3gs手机,而不是4手机。 Apache日志中没有生成错误。

我需要考虑的两种手机型号有一些区别吗?我已经用相同的行为尝试了http和https访问。我目前无法使用iPhone 4,因此任何洞察力都将非常有帮助。

回答

0

答案与型号无关。它与作为参数传递给服务器的电话名称有关。该名称包含一个撇号,如同Mike的iPhone一样。