Java HTTP请求出错

时间:2013-12-30 14:33:02

标签: java android error-handling

我正在尝试使用点击按钮上的HTTP发布请求上传名称和分数,但是我得到了一个奇怪的错误。这是我的代码。

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
        case R.id.bMenu:
            Intent i = new Intent(ShowScore.this, Menu.class);
            startActivity(i);
            break;
        case R.id.bUpload:
            postData();
            break;
    }
}

private void postData() {

    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.ratemyplays.com/form.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("name", "Steve"));
        nameValuePairs.add(new BasicNameValuePair("score", "24"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        // HttpResponse response = httpclient.execute(httppost);

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);

        // Just display the response back
        displayToastMessage(responseBody);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

private void displayToastMessage(String responseBody) {
    // TODO Auto-generated method stub
}

这是我的错误

  

值{/ p>的java.lang.String布局无效      

Java Runtime Environment检测到致命错误:

     

内部错误(javaClasses.cpp:136),pid = 9736,tid = 10668致命   错误:预加载类的布局无效

     

JRE版本:(7.0_40-b43)(build)Java VM:Java HotSpot(TM)64位   服务器VM(24.0-b56混合模式windows-amd64压缩oops)失败   写核心转储。默认情况下,客户端上未启用小型转储   Windows版本

2 个答案:

答案 0 :(得分:2)

如果查看堆栈跟踪,您可能会发现NetworkOnMainThreadException。自Android 3.x及更高版本以来,您无法在与UI相同的线程上运行网络操作。

总之,您需要使用ASyncTask

来源:Android IllegalStateException: Could not execute method of the activity(我自己测试了代码并按照堆栈跟踪发现了这个答案)

答案 1 :(得分:0)

Eclipse崩溃了。它与您的Android代码无关。

请查看Fatal Error: Invalid Layout of java.lang.String at value进行修复。