2012-10-25 38 views
1

我最初使用XCode 4.5創建項目,但後來我將相同的代碼移至XCode 4.2。NSURLConnection在iOS 6上正常工作,但不在早期版本上

我的代碼在所有模擬器上運行良好,包括最新的iOS6,但在設備上它只能與iOS6一起使用,而不能與早期版本一起使用。

當我使用一些參數向服務器發送請求時,它返回一個錯誤'Parameters missing'。 (我認爲在iOS 5和6中創建的方式請求是不同的,但不知道)

這是代碼:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    NSURL *requestURL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 


    [request setURL:requestURL]; 
    [request setHTTPMethod:@"post"]; 

    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    NSMutableData *body = [NSMutableData data]; 


    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"type_id\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"%@",type_poboq] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"signin_data\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"%@",jsonVal] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [request setHTTPBody:body]; 


    [NSURLConnection sendAsynchronousRequest:request 
             queue:[NSOperationQueue mainQueue] 
          completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
           if(error.localizedDescription == NULL) 
           { 
            NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

            [delegate ConnectionDidFinishLoading:returnString]; 
           } 
           else 
           { 
            NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

            [delegate ConnectiondidFailWithError:returnString]; 
           } 

          }]; 
+0

其中行顯示錯誤? –

+0

沒有錯誤,請求(登錄請求)在iOS 6中成功執行,但是當我使用iOS 5設備登錄時,服務器開始發送'Missing Parameters'消息。 – Kazmi

+0

與iOS 6服務器接收我從設備成功發送的JSON數據,但在iOS 5中,它不會收到任何JSON(僅爲空數據)。 – Kazmi

回答

1

顯然有一些問題與邊界,我使用的下面的行,而不是它的工作。

NSString *boundary = @"---------------------------14737809831466499882746641449"; 
相關問題