2013-06-27 164 views
0

我試圖使用NSURLConnection進行POST請求。我每次使用Charles來調試Charles,並且說方法是GET。我嘗試了所有不同的方式,無法實現。我不使用JSON。NSURLConnection發送GET請求,而不是POST請求

-(void)getList 
{ 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    NSURL *url = [NSURL URLWithString:@"http://example.com/api/getList"]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

    NSString *radius = @"15"; 
    NSString *latitude = @"-117.820833"; 
    NSString *longitude = @"34.001667"; 

    NSString *parameters = [NSString stringWithFormat:@"longitude=%@&latitude=%@&radius=%@", longitude,latitude, radius]; 
    NSLog(@"PARAMS = %@", parameters); 

    NSData *data = [parameters dataUsingEncoding:NSUTF8StringEncoding]; 

    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"text/plain" forHTTPHeaderField:@"Accept"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:data]; 

    NSURLResponse *response = nil; 
    NSError *error = nil; 
    NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

    NSString *responseString = [[NSString alloc]initWithData:result encoding:NSUTF8StringEncoding]; 

    NSLog(@"RESULT = %@", responseString); 


} 

有人知道我在做什麼錯嗎?當我訪問我的網絡服務時,似乎我沒有發佈任何內容。我得到空的答覆。

請幫助任何想法。我幾乎不得不做一個簡單的POST請求。也許有人可以幫助我更好地進行調試。

+0

服務器上是否有授權要求?您的請求是否被重定向? – Wain

+0

你可能調用這個URL作爲一個GET在應用程序的其他地方?它可能緩存對該網址的請求的響應,並因此忽略你的POST完成...也許給'request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;'一槍? – Stakenborg

+0

這是一個POST請求,如果我見過。問題在於別處。 –

回答

0

如果服務器由於某種原因(可能是身份驗證)重定向您的請求,那麼POST信息可能會丟失。