我正在使用AFNetworking從iOS v6.0應用程序連接到本地Cold Fusion 8服務器,而不是在同一臺計算機上,但在同一個網絡上並且連接超時。當我使用外部公共服務器時,它工作正常。NSMutableURLRequest無法連接到本地網絡
我試過通過IP地址連接,它不起作用。
我已經嘗試在主機文件中爲IP地址分配域名,但這也不起作用。請參閱下面的錯誤。 但是,我可以通過網絡瀏覽器連接就好了。
此外,服務器端文件是完全一樣的。 Cold Fusion的版本相同。唯一的區別是,我可以找到的公共服務器是Win2003與IIS6和本地服務器是Windows7與IIS7。
任何想法爲什麼這不會在本地網絡上工作。使當地發展有種困難。
下面是相關代碼:
// load params
NSMutableDictionary *myParams = [[NSMutableDictionary alloc] init];
[myParams setValue:@"Hello" forKey:@"Parameter1"];
[myParams setValue:@"There" forKey:@"Parameter2"];
// Load the base URL into a URL object
// Changing this to an external public server works fine
NSURL *baseURL = [NSURL URLWithString:@"http://www.mylocalmachine.com/"];
// Create HTTP client and init with base url
AFHTTPClient *myHttpClient = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
// POST request to path with the parameters
NSMutableURLRequest *myRequest = [myHttpClient requestWithMethod:@"POST" path:@"myfile.cfm" parameters:myParams];
// Block response from the HTTP client request and pass it back to the calling object
AFJSONRequestOperation *myOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:myRequest
success:^(NSURLRequest *mySuccessRequest, NSHTTPURLResponse *mySuccessResponse, id mySuccessJSON)
{
// PROCESS THE SUCCESS RESPONSE;
}
failure:^(NSURLRequest *myFailureRequest, NSHTTPURLResponse *myFailureResponse, NSError *myFaliureError, id myFailureJSON)
{
// PROCESS THE FAILURE RESPONSE... AFTER 60 seconds the system will fallout to this block.
}];
// Create a queue object
NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
// Add the operation object to the queue
[myQueue addOperation:myOperation];
以下是錯誤我得到打印myFailureError對象
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x8481000 {NSErrorFailingURLStringKey=http://www.mylocalmachine.int/myfile.cfm, NSErrorFailingURLKey=http://www.mylocalmachine.int/myfile.cfm, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x9189e20 "The request timed out."}
更新---- 我相信我已經縮小的問題降到我相信是訪問IIS 7的iPhone模擬器的問題。它將使用相同的代碼訪問以前版本的IIS在同一網絡上沒有問題。 這個問題可能出現在iPhone模擬器的用戶代理中。我試圖找到一種方法來更改iPhone模擬器的用戶代理或允許IIS 7中的用戶代理,但似乎無法弄清楚。 iPhone模擬器6展示的用戶代理是(iPhone Simulator; ios 6.0; Scale/2.00)。
有誰知道如何讓IIS 7上的此用戶代理或更改iPhone模擬器中的用戶代理?
有其他人看過這個問題嗎? 由於提前, 埃德
更新----
大家好 好了,所以我想通了,如何改變用戶代理和使用NSMutableURLRequest的Content-Type。我改變了這些以匹配瀏覽器發送的內容,FireFox瀏覽器,然後再次嘗試無效。我仍然相信IIS 7.5的配置有問題,但我找不到它... 感謝任何人的幫助! 埃德
嗨Nirav,感謝您的協助,但是,這些編輯無效。我將它縮小到了我所認爲的與訪問IIS 7的iPhone模擬器相關的問題。它將訪問同一網絡上的以前版本的IIS。我試圖找到一種方法來更改iPhone模擬器的用戶代理或允許IIS 7中的用戶代理,但似乎無法弄清楚。 iPhone模擬器6展示的用戶代理是(iPhone Simulator; ios 6.0; Scale/2.00)。有誰知道如何讓IIS 7上的這個用戶代理或在iPhone模擬器中更改用戶代理?謝謝 – Edd