我最近寫了一些代碼在java應該發送一個字符串到PHP腳本,它工作得很好。但是,當我在android程序中使用它時,它拒絕工作。以爲有人可以幫助我找出問題所在!Android的HTML POST不起作用,沒有錯誤
public static String main(String x, String y){ if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
}else{
try{
String username = x;
String password = y;
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("username","UTF-8")+"="+URLEncoder.encode(username,"UTF-8")+"&"
+URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
// LÄSER FRÅN HEMSIDAN
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = bufferedReader.readLine()) != null){
result += line;
}
//AVSLUTA CONNECTION
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
}catch(Exception e){
e.printStackTrace();
}
}
return null;
}
我確實允許清單中的Internet權限,加入
<uses-permission android:name="android.permission.INTERNET" />
,但它根本沒有給我結果。起初我以爲可能在PHP腳本中缺少某些東西,但在eclipse中進行測試時它的工作狀態非常好,所以在android部件中一定有某些錯誤或缺失,對吧?
你可以在刷新你的數據並查看你有什麼後添加這個'Log.d(「HTTPSENDER」,「」+ httpURLconnection.getResponseCode());''在某些情況下,這也可以解決你的怪異錯誤。 – user1506104
@ user1506104謝謝,我會給它一個鏡頭,看看會發生什麼! :) – Janono
你有沒有得到響應碼?它工作? – user1506104