java - 在android中使用参数发送json发布日期

标签 java android post

我正在尝试使用 Android 发出 POST 请求,但没有成功。我认为问题在于如何设置resquisição和Header的参数。以下是我执行请求的方法...

public void testPostDate() {

    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
    HttpResponse response;

    Gson gson = new Gson();
    CrimePOST.Crime crime = new CrimePOST().new Crime(10, "São Paulo",
            "descrição", 10.00, 30.00);

    CrimePOST crimePost = new CrimePOST();
    crimePost.setCrime(crime);

    List<NameValuePair> params = new LinkedList<NameValuePair>();

    params.add(new BasicNameValuePair("token",
            "0V1AYFK12SeCZHYgXbNMew==$tRqPNplipDwtbD0vxWv6GPJIT6Yk5abwca3IJa6JhMs="));

    String json = gson.toJson(crimePost);

    String paramString = URLEncodedUtils.format(params, Utils.ENCODE);

    try {
        HttpPost post = new HttpPost(
                "http://safe-sea-4024.herokuapp.com/crimes/mobilecreate"
                        + "?" + paramString);

        post.setHeader("Content-Type", "application/json");

        StringEntity entitty = new StringEntity(json);
        entitty.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
                "application/json"));

        post.setEntity(entitty);
        response = client.execute(post);

        /* Checking response */
        if (response != null) {
            InputStream in = response.getEntity().getContent();
            String a = toString(in);
            System.out.println(a);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

}

该方法负责将 inputStream 转换为 String

    private String toString(InputStream is) throws IOException {

    byte[] bytes = new byte[1024];
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int lidos;
    while ((lidos = is.read(bytes)) > 0) {
        baos.write(bytes, 0, lidos);
    }
    return new String(baos.toByteArray());
}

我真的正确传递了 header 吗?

最佳答案

您必须在 AsyncTask 中执行此操作

关于java - 在android中使用参数发送json发布日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456642/

相关文章:

java - 编写一个程序来从用户那里获取各种数据值并以不同的格式显示它。

java - 从数据库中检索顺序数据的最快方法是什么?

java - 在 Java 中打印对象值

android - 无法恢复 RecyclerView 的位置/状态

Android SnappyDB 危险权限

ios - 将 UITextfield 整数值发布到 Web 服务器

ios - Zend 1.10 'isPost' 在 Af Networking 2.2 发布到它时返回 false

java - Selenium Safari 使用 findElement.sendkeys 超时

android - 强制 TextView 与多行文本一起使用

android - HttpURLConnection 的 setRequestProperty 函数