1

我有一個奇怪的問題,我正在處理一個項目,我必須從服務器請求,請求使用GET方法的參數URL時,它工作正常並返回所需的數據,但使用相同的代碼何時調用URL和發送參數,它失敗,此錯誤:NSURL請求超時請求

error: Error Domain=NSURLErrorDomain Code=-1001 UserInfo=0xed4870 "timed out" 

我的代碼如下:

NSString *param = @"pageNumber=2"; 

NSURL *url = [NSURL URLWithString:@"http://myWebsite/api/Soccor/"];//When using this, it works fine 
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myWebsite/api/Soccor?%@", param]];//When using this, it gives me the request time out error. 
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; 
[theRequest addValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
[theRequest addValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
[theRequest setHTTPMethod:@"GET"]; 
[theRequest setTimeoutInterval:10]; 
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 

任何線索,爲什麼它會返回錯誤用th發送參數時e URL

+0

一旦檢查您的網址格式傳遞參數時,您可能需要給該參數值的任何鍵。 –

+0

@kalyanipuvvada你能解釋更多!?你的評論對我來說並不清楚。 – Scar

+0

@Rob我在瀏覽器中測試了URL,它工作正常,這是最奇怪的部分。關於你在標題上的觀點,爲什麼它與第一個URL一起工作,但第二個不是!? – Scar

回答

1

我建議你考慮請求的兩個方面:

  1. 您還沒有向我們展示你的msgLength設置,但如果您還使用setHTTPBody我只建議您設定Content-Length頭,在在這種情況下,您將Content-Length設置爲NSDatalength,您將其用作setHTTPBody的參數。但是這與POST請求一起使用,而不是GET請求。

  2. 您指定application/json爲請求的Content-Type,但請求不包含JSON。如果你這樣做是因爲響應是JSON,那麼應該注意到這個頭值是針對你的請求的,而不是你期望從服務器得到的響應。