[英]Android HTTP Request issue
我正在嘗試從我在Andorid Studio中構建的應用程序發出一個http請求,但是看到了一些奇怪的行為
以下代碼在運行時返回HTTP / 1.1 200,但php腳本不運行。 要檢查php腳本是否正確,我已將其復制並粘貼到瀏覽器中,它運行得非常好
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.domain.com/script.php");
try {
// Add your data
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
mLastUpdateTimeTextView.setText(response.getStatusLine().toString());
Log.d("Http Post Response:", response.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
請問有什么身體可以告訴我為什么我會得到200肯定的響應,但腳本沒有運行?
只是要添加我已在我的清單文件中設置了Internet權限
這是logcat:
02-27 16:33:13.030 26409-26675 /? I / ExchangeSyncSources:[NA] [HttpClientLifeCycle]創建時間:1107382416 02-27 16:33:14.370 26528-26528 /? I / GHttpClientFactory:使用GMSCore的GoogleHttpClient 02-27 16:33:14.590 9554-26702 /? I / GoogleURLConnFactory:綁定HttpService 02-27 16:33:14.600
9554-26702 /? I / GoogleHttpClient:回歸舊版SSLCertificateSocketFactory 02-27 16:33:14.820 26409-26675 /? I / ExchangeSyncSources:[NA] [HttpClientLifeCycle]已關閉:1107382416 02-27 16:33:14.900 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]創建時間:1108133120 02-27 16:33:15.920 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]關閉:1108133120 02-27 16:33:16.030 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]創建時間:1107653144 02-27 16:33:17.890 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]關閉:1107653144 02-27 16:33:18.160 26409-26751 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,1]創建時間:1106603920 02-27 16:33:18.970 26342-26342 / com.example.matt.myapplication D / Http Post Response :: org.apache.http.message.BasicHttpResponse @ 4201f0e8 02-27 16:33:19.050 26409-26751 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,1]關閉:1106603920 02-27 16:33:19.180 26409-26757 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,2]創建時間:1106203584 02-27 16:33:19.930 26409-26757 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,2]已關閉:1106203584 02-27 16:33:20.150 26409-26773 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,4]創建時間:1108392040 02-27 16:33:21.040 26409-26773 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,4]關閉:1108392040
我前段時間有一些類似的方法,有一些小的差異。 據我所知,'HttpClient'和'DefaultHttpClient'之間存在差異。您可以這樣嘗試:
DefaultHttpClient locationClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.domain.com/script.php");
HttpResponse response = null;
try {
response = locationClient.execute(httpPost);
}
catch (ClientProtocolException e) {
Log.e(TAG, e.toString());
}
catch (IOException e) {
Log.e(TAG, e.toString());
}
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
// do something
}
else {
Log.e(TAG, "Empty response");
}
所以我得承認,我找到了解決辦法,這與網址框有關。
網址中有一個大寫字母,它不在我服務器上的文件名中。 這導致HTTP請求運行404錯誤頁面。
該鏈接在瀏覽器中工作,但不是Java中HTTP請求中的URL路徑。
現在,我知道這可以被視為無人駕駛,但我想指出,當通過Android發出HTTP請求時,這可能是一個潛在的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.