Пример публикации Java okHttp отправляет JSON на узел RESTful API вместо формы - PullRequest
0 голосов
/ 15 октября 2018

Попытка использовать OkHttp, чтобы получить, опубликовать и поместить с Java в RESTful API в Node.js / Express.OkHttp API дает следующий пример

public class PostExample {
  public static final MediaType JSON = MediaType.get("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();
    try (Response response = client.newCall(request).execute()) {
      return response.body().string();
    }
  }

  String bowlingJson(String player1, String player2) {
    return "{'winCondition':'HIGH_SCORE',"
        + "'name':'Bowling',"
        + "'round':4,"
        + "'lastSaved':1367702411696,"
        + "'dateStarted':1367702378785,"
        + "'players':["
        + "{'name':'" + player1 + "','history':[10,8,6,7,8],'color':-13388315,'total':39},"
        + "{'name':'" + player2 + "','history':[6,10,5,10,10],'color':-48060,'total':41}"
        + "]}";
  }

  public static void main(String[] args) throws IOException {
    PostExample example = new PostExample();
    String json = example.bowlingJson("Jesse", "Jake");
    String response = example.post("http://www.roundsapp.com/post", json);
    System.out.println(response);
  }
}

Но мой API работает с формой, а пример - не работает.Как я могу получить JSON, который okHttp отправляет на сервер?

//POST cliente
router.post('/users', (req,res) => {

    console.log(req.body.create_first_name)
    console.log(req.body.create_email)

    const name = req.body.create_first_name;
    const email = req.body.create_email;

    const queryString = "INSERT INTO cliente (id,name,email) VALUES (?,?,?)";
    getConnection().query(queryString, [null,name,email], (err, results, fields) => {
        if (err) {
            console.log(err);
            res.sendStatus(500);
            return
        }
        console.log(results.insertId);
        res.end();
    });
    res.end();
});
...