简体   繁体   English

Android应用:asynchttpclient unknownhostexception

[英]Android app: asynchttpclient unknownhostexception

I'm developing a simple android application that needs to get and post data to an self developed web api. 我正在开发一个简单的android应用程序,该应用程序需要获取数据并将其发布到自行开发的网络api。 At first i got it working like a charm but after a restart and update of my iMac it turned out the app doesn't works anymore like before. 起初,我感觉它像魅惑一样运转,但是在重新启动并更新了iMac之后,我发现该应用程序不再像以前那样工作了。

the following error is returned in Android Studio: java.net.UnknownHostException: Unable to resolve host "sensor.creatiefingewikkeld.com": No address associated with hostname Android Studio中返回以下错误:java.net.UnknownHostException:无法解析主机“ sensor.creatiefingewikkeld.com”:没有与主机名关联的地址

This is my SensorRestClient api class: 这是我的SensorRestClient api类:

public class SensorRestClient {
    private static final String BASE_URL = "http://sensor.creatiefingewikkeld.com/";

    private static AsyncHttpClient client = new AsyncHttpClient();

    public static void get(Context context, String url, Header[] headers, RequestParams params,
                           AsyncHttpResponseHandler responseHandler) {
        Log.i("tester inside get",getAbsoluteUrl(url));
        client.get(context, getAbsoluteUrl(url), headers, params, responseHandler);
    }

    public static void post(Context context, String url, RequestParams params,
                            AsyncHttpResponseHandler responseHandler){
        client.post(getAbsoluteUrl(url), params, responseHandler);
    }

    private static String getAbsoluteUrl(String relativeUrl) {
        return BASE_URL + relativeUrl;
    }
}

This is my MainActivity class: 这是我的MainActivity类:

public class MainActivity extends AppCompatActivity {

    private ListView dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getData();
        //postData();
    }
    private void getData() {
        List<Header> headers = new ArrayList<Header>();
        headers.add(new BasicHeader("Accept", "application/json"));

        SensorRestClient.get(MainActivity.this, "api/get", headers.toArray(new Header[headers.size()]),
                null, new JsonHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, JSONArray response) {

                        ArrayList<SensorData> dataArray = new ArrayList<SensorData>();
                        SensorDataAdapter dataAdapter = new SensorDataAdapter(MainActivity.this, dataArray);
                        Log.i("e","e");
                        for (int i = 0; i < response.length(); i++) {
                            try {
                                dataAdapter.add(new SensorData(response.getJSONObject(i)));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }

                        dataList = (ListView) findViewById(R.id.list_notes);
                        dataList.setAdapter(dataAdapter);
                    }
                    @Override
                    public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                        Log.i("StatusCode:" , String.valueOf(statusCode)    );
                    }
                });
    }

    private void postData(){
        RequestParams params = new RequestParams();
        params.put("kind", "Temperature");
        params.put("title", "Test from android");
        params.put("data", "28");

        SensorRestClient.post(MainActivity.this, "api/post", params,
                new JsonHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                        Log.i("Status-Posted: ", String.valueOf(statusCode));
                    }
                }
        );
    }

}

I am also using a adapter for a listView but i don't think the code for that is necessary for now. 我也为listView使用适配器,但我认为现在不需要该代码。

I hope someone can help me out with this because. 我希望有人可以帮助我,因为。

after checking the URI in a browser, i am pretty sure that you simply ran in to a (temporary?) dns failure situation. 在浏览器中检查URI后,我可以确定您只是遇到了(临时?)dns故障情况。 Could you confirm that the error did not go away? 您可以确认错误没有消失吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM