2011-03-22 19 views
1

你好朋友 我使用的是使用JSOn web服務的https服務器數據,但我不知道證書的問題。 我已經與http數據一起工作,但不適用於安全的https數據.. 任何人都可以幫我嗎?iPhone中的https數據

+0

您能從桌面瀏覽器使用HTTPS訪問服務嗎?它是否顯示任何安全警告? – Thilo 2011-03-22 11:09:19

回答

1

如果您只是處理從HTTPS連接中獲取數據,只需使用NSURLConnection即可。他們還處理HTTPS流量。

看一看這個問題的處理證書:HTTPS with NSURLConnection

+0

我已經嘗試,我得到的答覆,但我從JSON方面得到錯誤.. – Hiren 2011-03-23 05:55:22

3

我建議ASIHTTPRequest庫處理的iOS應用程序的HTTP請求。我將它用於我們所有的應用程序。

您使用的是自簽名證書嗎?如果是這樣,您需要將'validatesSecureCertificate'設置爲NO,否則請求將失敗。

這裏是做對HTTPS

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:@"https://example.com/post"]; 
[request setPostValue:email forKey:@"email"]; 
[request setPostValue:name forKey:@"name"]; 

// IMPORTANT: allows our self-signed cert to be ok 
request.validatesSecureCertificate = NO; 

[request startSyncronous]; 

NSLog(@"post returned a %d", [request responseStatusCode]); 

NSError *error = [request error]; 
if (!error) { 
    NSString *response = [request responseString]; 
    NSLog(@"SUCCESS! Response is %@", response); 
} else { 
    NSLog(@"FAIL!! %@", [error description]); 
}  

後如果你寧願使用一些代碼,內置蘋果的東西,然後埃裏克·艾格納的回答解釋瞭如何處理這個使用NSURLConnection的。

在開始編碼之前,我建議使用CURL命令來測試開發機器的連接,例如,對於上面的示例:

curl -i -L -k -X POST "https://example.com/test" -d "[email protected]&name=bar" 

如果這不起作用,那麼上面的代碼也不起作用。

+0

thnx您的迴應。但我想使用get方法而不是post方法,並且m從不使用https:// webservice數據。你能給我任何相關的例子鏈接.. – Hiren 2011-03-23 05:54:19