当前位置: 代码迷 >> Android >> 从接口获取数据出现有关问题(新手~)
  详细解决方案

从接口获取数据出现有关问题(新手~)

热度:10   发布时间:2016-04-28 04:14:11.0
从接口获取数据出现问题(新手求助~)
本帖最后由 LeoHirasawa 于 2014-08-22 00:17:33 编辑
想做一个天气预报的功能,所以尝试着从网上的接口获取JSON数据,有一个在网上COPY下来的sycnhttp类,一个mainActivity,按照网上的教程先启动了tomcat,然后运行程序,结果出了问题,显示Toast为“未找到”,说明抛出了异常(经过我用Toast测试,在String retStr = syncHttp.httpGet(urlStr, paramsStr);这句时就无法执行了,但是可以进入try语句块,说明与后面对JSON的解析应该没什么关系。。应该就是这句话进行不下去,数据应该是没获取到),若水的教程把一个WAR包放到了tomcat的webapps文件夹中,我不会web开发什么的,小白不懂这个有用没?简单的从接口获取数据需要这个东西吗?这个天气接口,在浏览器上直接输入是有效的,但是在程序中无法获取到数据。小白求大神帮忙看看,到底是哪里出了问题呢??跪求大神啦,这任务比较紧

sycnhttp类

package com.leo.http;

import java.io.ByteArrayOutputStream;  
import java.io.DataOutputStream;  
import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.util.List;  

import org.apache.http.params.HttpConnectionParams;

import android.R.integer;
  
  
public class SyncHttp  
{  

      
    private static final int TIME_OUT = 1000 * 6; // 超时  
    private static final String METHOD_POST = "POST";  
    private static final String METHOD_GET = "GET";  
    private static final int HTTP_OK = 200;  
    private final String CHARTSET = "UTF-8"; //字符编码  
    private final int BUFFER = 1024 * 8;//缓冲区  
    public String httpGet(String urlStr, String paramsStr) throws Exception  
    {  
    
        StringBuilder urlBuilder = new StringBuilder();  
        urlBuilder.append(urlStr);  
        if (null!=paramsStr&&!paramsStr.equals(""))  
        {  
            urlBuilder.append("?");
            urlBuilder.append(paramsStr);  
        }  
        //Log.i(Constants.TAG, urlBuilder.toString());  
        URL url = null;  
        HttpURLConnection conn = null;  
        InputStream inStream = null;  
        String response = null;  
        try  
        {  
            url = new URL(urlBuilder.toString());  
            System.out.println("");  
            //根据URL打开远程连接  
            conn = (HttpURLConnection) url.openConnection();  
            //设置参数  
            conn.setDoInput(true);  
            conn.setConnectTimeout(TIME_OUT);  
            conn.setRequestMethod(METHOD_GET);  
            conn.setRequestProperty("accept", "*/*");  
            //建立连接  
            conn.connect();  
            //接受返回码  
            int responseCode = conn.getResponseCode();  
            if (responseCode == HTTP_OK)  
            {  
                //获取输入流  
                inStream = conn.getInputStream();  
                //从输入流中获取信息  
                response = getResponse(inStream);  
            }  
  相关解决方案