gpt4 book ai didi

android - HttpHostConnectException + NullPointerException

转载 作者:行者123 更新时间:2023-11-29 22:42:07 26 4
gpt4 key购买 nike

我正在尝试从我的计算机上的 mySQL 数据库获取数据。当我在模拟器上运行应用程序时,我得到一个 HttpHostConnectException (我已经在浏览器中测试了我的地址,并尝试了带或不带端口号的 10.0.2.2),然后应用程序崩溃并出现 NullPointerException。我该如何解决这些问题?

连接器.java

public class Connector {

public JSONArray getResults(){

String url = "http://192.168.87.1/android/getStudents.php";

HttpEntity httpentity = null;

try
{
DefaultHttpClient httpclient =new DefaultHttpClient();
HttpGet httpget= new HttpGet(url);
HttpResponse httpresponse = httpclient.execute(httpget);
httpentity = httpresponse.getEntity();

}catch (ClientProtocolException e){
e.printStackTrace();

}catch (IOException e){
e.printStackTrace();
}

JSONArray jsonarray = null;
if(httpentity != null){
try{
String entityresponse = EntityUtils.toString(httpentity);
Log.e("Entity Response: ", entityresponse);

jsonarray = new JSONArray(entityresponse);

}catch (JSONException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
return jsonarray;
}}

MainActivity.java

public class MainActivity extends ActionBarActivity {

private TextView resultsViewer;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

this.resultsViewer = (TextView)this.findViewById(R.id.resultsViewer);

new getResultsTask().execute(new Connector());
}


private void setText (JSONArray jsonarray){

String string = "";
for(int i=0; i<jsonarray.length(); i++){
JSONObject json = null;
try{
json = jsonarray.getJSONObject(i);

string = string + "Exam : " + json.getString("exam_name") + "\n" +
"Score :" + json.getString("score") + "\n\n";

}catch (JSONException e){
e.printStackTrace();
}
}
this.resultsViewer.setText(string);
}

private class getResultsTask extends AsyncTask<Connector, Long, JSONArray>{

@Override
protected JSONArray doInBackground(Connector... params) {

return params[0].getResults();
}

@Override
protected void onPostExecute(JSONArray jsonarray) {

setText(jsonarray);
}

}}

来自 LogCat 的一些行

Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f09003f}
Emulator without GPU emulation detected.
Background sticky concurrent mark sweep GC freed 3259(270KB) AllocSpace objects, 0(0B) LOS objects, 31% free, 759KB/1117KB, paused 3.009ms total 1.004s
org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.56.1 refused
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:188)

和 NullPointerException

    Shutting down VM
--------- beginning of crash
FATAL EXCEPTION: main
Process: com.ed.jsontest2, PID: 1302
java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference
at com.ed.jsontest2.MainActivity.setText(MainActivity.java:32)

最佳答案

如果服务器在您的本地计算机上运行,​​则必须使用 IP 地址 10.0.0.2。端口号是必需的

您的网址应该是http://10.0.2.2:portnumber/android/getStudents.php ...

端口号是你本地服务器运行的端口

如果您从远程计算机运行服务器,则替换主机 IP 地址

关于android - HttpHostConnectException + NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29297807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com