我正在尝试将我的Android应用程序连接到服务器,以使用PHP和SQL发送和检索数据。我在我的android AsyncTask中使用了这段代码
protected String doInBackground(String... params) {
String sender=params[0];
String receipent=params[1];
String mess=params[2];
try {
URL url=new URL("http://muzamilbukhari.******/******.php");
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));
String info= URLEncoder.encode("from","UTF-8")+"="+URLEncoder.encode(sender,"UTF-8")+"&"+URLEncoder.encode("to","UTF-8")+"="+
URLEncoder.encode(receipent,"UTF-8")+"&"+URLEncoder.encode("message","UTF-8")+"="+URLEncoder.encode(mess,"UTF-8");
bufferedWriter.write(info);
bufferedWriter.flush();
outputStream.close();
bufferedWriter.close();
InputStream inputStream=httpURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line=bufferedReader.readLine())!=null){
result+=line;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
但它有时有效并且下一刻不起作用。我收到了以下错误:
1 Please Click here to see Error
2 Please Click here to see Error
以下是Logcat:
--------- beginning of crash
07-25 11:53:46.209 2851-2910/com.example.muzamil.chatapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.example.muzamil.chatapp, PID: 2851
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at com.example.muzamil.chatapp.Utility.parse(Utility.java:9)
at com.example.muzamil.chatapp.MainActivity$LoginData.doInBackground(MainActivity.java:101)
at com.example.muzamil.chatapp.MainActivity$LoginData.doInBackground(MainActivity.java:55)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
07-25 11:53:46.619 2851-2908 / com.example.muzamil.chatapp E / Surface:getSlotFromBufferLocked:unknown buffer:0xaa2a10e0
[ 07-25 11:53:46.657 1556: 6510 D/ ]
HostConnection::get() New Host Connection established 0x9eb91020, tid 6510
07-25 11:56:02.018 2851-2857 / com.example.muzamil.chatapp W / art:暂停所有线程:11.490ms