android发送GET请求获取服务器数据

Android 码拜 5年前 (2015-04-24) 153次浏览 0个评论
 

服务器端数据没有问题,但是请求不到数据!android发送GET请求获取服务器数据

android发送GET请求获取服务器数据
发送请求那行代码过不去android发送GET请求获取服务器数据
android发送GET请求获取服务器数据
40分
访问网络操作放在主线程了,放到分线程即可!
android发送GET请求获取服务器数据
getData方法在分线程即可!
android发送GET请求获取服务器数据
public List<Map<String, Object>> getData(){
final List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
new Thread(){
public void run(){
        try {
         String url=”http://guoqiang.x9.fjjsp01.com/factory/Get/null”;
        //  String url=”http://vsdemo.x9.fjjsp01.com/quality/mobile/getCustomer”;
         HttpGet post=new HttpGet(url);
         HttpClient httpClient = new DefaultHttpClient();
         HttpResponse response = httpClient.execute(post);
            // 执行get请求.    
    //  httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
  //      response = httpClient.execute(post);//发送请求
        Toast.makeText(getApplicationContext(), “2”, 0).show();
android发送GET请求获取服务器数据
貌似这样写也不对啊!
android发送GET请求获取服务器数据
引用 5 楼 vsxingchen 的回复:

貌似这样写也不对啊!

有错误吗?

android发送GET请求获取服务器数据
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.import_company_code_activity);
listView=(ListView)findViewById(R.id.list);  
List<Map<String, Object>>   list=getData();
        
        listView.setAdapter(new ListAdapter(this, list));  
        listView.setOnItemClickListener(new ItemClickListener()); 
}

方法public List<Map<String, Object>> getData(){
final List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
new Thread(){
public void run(){
        try {
         String url=”http://guoqiang.x9.fjjsp01.com/factory/Get/null”;
        //  String url=”http://vsdemo.x9.fjjsp01.com/quality/mobile/getCustomer”;
         HttpGet post=new HttpGet(url);
         HttpClient httpClient = new DefaultHttpClient();
         HttpResponse response = httpClient.execute(post);
            // 执行get请求.    
    //  httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
  //      response = httpClient.execute(post);//发送请求
        Toast.makeText(getApplicationContext(), “2”, 0).show();
        int statusCode=response.getStatusLine().getStatusCode();
        Toast.makeText(getApplicationContext(), “3”, 0).show();
        if (statusCode>= 200&&statusCode<400) {//判断请求是否成功
                HttpEntity entity = response.getEntity();
                String out = EntityUtils.toString(entity, “UTF-8”);
                //out=Base64.encodeToString(out.getBytes(“GBK”) ,Base64.DEFAULT);
                JSONArray array=new JSONArray(out);
                for(int i=0 ; i < array.length() ;i++){
                 Map<String, Object> map=new HashMap<String, Object>();
                 JSONObject myjObject = array.getJSONObject(i);
                 String title = myjObject.getString(“id”);
                 Toast.makeText(getApplicationContext(), title, 0).show();
                 String info = myjObject.getString(“name”);
                 String code = myjObject.getString(“code”);
                 map.put(“title”, title);
  map.put(“info”, info);
  map.put(“msg”, code);
  list.add(map);
                }
                        }
        } catch (Exception e) {
         Toast.makeText(getApplicationContext(), “URL请求失败”, 0).show();
                e.printStackTrace();
        }

}
}.start();
     return list;
}

android发送GET请求获取服务器数据
先把toast给注掉,toast要在主线程!

引用 8 楼 vsxingchen 的回复:

android发送GET请求获取服务器数据

android发送GET请求获取服务器数据
问题是这样的话list返回的是空置吧!
android发送GET请求获取服务器数据
咋样就改对对了又在分线程,又得返回数据!
android发送GET请求获取服务器数据
用线程池,Executors.newSingleThreadExecutor()   将任务提交给ExecutorService

引用 11 楼 vsxingchen 的回复:

咋样就改对对了又在分线程,又得返回数据!

android发送GET请求获取服务器数据
哦,谢谢了,我没有多用过线程,我研究下线程池
android发送GET请求获取服务器数据
用线程池,Executors.newSingleThreadExecutor()   将任务提交给ExecutorService来执行同时调用Future.get()方法来获取结果!

引用 13 楼 vsxingchen 的回复:

哦,谢谢了,我没有多用过线程,我研究下线程池

android发送GET请求获取服务器数据
没有用线程池也可以,但是刚进去是没有的数据点下才出来!
android发送GET请求获取服务器数据
就单用了上面写的线程执行,但是数据刚进去没有点下才出来,是异步的?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android发送GET请求获取服务器数据
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!