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];
}
}];
其中行顯示錯誤? –
沒有錯誤,請求(登錄請求)在iOS 6中成功執行,但是當我使用iOS 5設備登錄時,服務器開始發送'Missing Parameters'消息。 – Kazmi
與iOS 6服務器接收我從設備成功發送的JSON數據,但在iOS 5中,它不會收到任何JSON(僅爲空數據)。 – Kazmi