Error converting result org.apache.http.conn.HttpHostConnectException:Connection to http://127.0.0.1 refused
以下是获取数据的代码:
public ListgetWholePOI(String SQLUri){ List info=new ArrayList (); SortModel temp; HttpClient httpClient = new DefaultHttpClient(); HttpPost httpRequest = new HttpPost(SQLUri); //SQLUri是你与服务器交互的地址 httpRequest.setHeader("Accept", "application/json"); String tagName=""; String mname=""; int difficulty=0; int i=0; try { //得到响应 HttpResponse response = httpClient.execute(httpRequest); Log.e("position","~~~~~~~~~~~~here~~~~~~~~~~~~"); //返回值如果为200的话则证明成功的得到了数据 if(response.getStatusLine().getStatusCode() == 200) { StringBuilder builder = new StringBuilder(); //将得到的数据进行解析 BufferedReader buffer = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"UTF-8")); Log.e("success","~~~~~~~~~~~~here~~~~~~~~~~~~"); for(String s =buffer.readLine(); s!= null; s = buffer.readLine()) { builder.append(s); } String json=builder.toString(); JsonReader jr=new JsonReader(new StringReader(json));//tname为json字符串 try { jr.beginArray();// 开始解析数组 while(jr.hasNext()){ jr.beginObject();//开始解析对象 temp=new SortModel(); while (jr.hasNext()) { tagName=jr.nextName(); //多余一个name的时候要设置一个tagName存储这个name,不能直接在每个if后使用jr.nextName() //不然会引起exception if (tagName.equals("mname")) { //解析键值 //Log.e("p_id",jr.nextString()); mname=jr.nextString(); //存入数据 temp.setName(mname); }else if (tagName.equals("difficulty")) { //解析键值 //Log.e("votes",jr.nextString()); difficulty=Integer.parseInt(jr.nextString()); temp.setDifficulty(difficulty); } } jr.endObject();// 解析对象结束 //汉字转换成拼音 String pinyin = characterParser.getSelling(mname); String sortString = pinyin.substring(0, 1).toUpperCase(); // 正则表达式,判断首字母是否是英文字母 if(sortString.matches("[A-Z]")){ /*有bug,当首字母没有匹配上list item的话,虽然输入首字母能查找出相应的item,但是首字母之后的输入则不能搜索到目标*/ temp.setSortLetters(sortString.toUpperCase()); }else{ temp.setSortLetters("#"); } info.add(temp); i++; } jr.endArray();// 解析数组结束 } catch (IOException e) { e.printStackTrace(); } return info; } } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } return info; }
1)127.0.0.1能ping通的,浏览器也能连接本地服务器。
2)试过换成192.几几几的IP,没有了上面的错误提示了,但仍旧获取不了数据,而且ping这种IP时一直超时。
3)防火墙已经关掉了。
4)permission也加过了。
求大神指点迷津!!跪谢。
如果你用的是127.0.0.1的IP,我认为你是绝无可能获取数据的,127.0.0.1是指本机地址,PC指向PC自己,Android客户端指向客户端自己,客户端用127.0.0.1是不可能访问到PC上的。至于其他IP怎么用,首先你得确认你的服务端运行所在PC的IP是什么,而不是靠猜是哪个IP地址。