使用Java和PHP通过okhttp进行JSON请求

我正在使用带有Java和PHP的okhttp lib。 我的Java客户端正在运行以下代码。</ p>

  public class Connection {

public static final MediaType JSON = MediaType
.parse(“application / json; charset = utf-8“);

OkHttpClient client = new OkHttpClient();

String post(String url,String json)抛出IOException {
RequestBody body = RequestBody.create(JSON,json);
请求请求= new Request.Builder()。url(url).post(body).build();
响应响应= client.newCall(request).execute();
返回response.body()。string ();
}

public static void main(String [] args)throws IOException {
Connection example = new Connection();
String json =“{'input':'test'} “;
String response = example.post(”http://localhost/android_api/index.php“,json);
System.out.println(response);
}
}
</ code > </ pre>

在服务器端,我尝试使用下面的代码解码JSON字符串,但我的webservice只返回NULL。 </ p>

 &lt;?php 

$ rawData = file_get_contents(“php:// input”);
$ json = json_decode($ rawData);
var_dump ($ json);

?&gt;
</ code> </ pre>

我做错了什么?</ p>
</ div>

展开原文

原文

I am using okhttp lib with Java and PHP. My Java client is running the following code.

public class Connection {

    public static final MediaType JSON = MediaType
            .parse("application/json; charset=utf-8");

    OkHttpClient client = new OkHttpClient();

    String post(String url, String json) throws IOException {
        RequestBody body = RequestBody.create(JSON, json);
        Request request = new Request.Builder().url(url).post(body).build();
        Response response = client.newCall(request).execute();
        return response.body().string();
    }


    public static void main(String[] args) throws IOException {
        Connection example = new Connection();
        String json = "{'input':'test'}";
        String response = example.post("http://localhost/android_api/index.php", json);
        System.out.println(response);
    }
}

On the server-side I try to decode the JSON String with code following below but my webservice just return a NULL.

<?php

    $rawData = file_get_contents("php://input");
    $json = json_decode($rawData);
    var_dump($json);

?>

What am I doint wrong?

douleijiang8111
douleijiang8111 好吧,我发现我的json字符串是错误的。我发送了一个错误的字符串{'input':'test'}而不是{“input”:“test”}但我不能在字符串中使用“。如何在不使用双引号字符的情况下解决问题“?
5 年多之前 回复

1个回答



首先,您在主线程上调用http请求,这将导致错误。 所以你使用AsyncTask </ p>
</ div>

展开原文

原文

First, you are calling an http request on the main-thread which will cause an error. So you use AsyncTask

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐