Java и OkHTTP - PullRequest
       7

Java и OkHTTP

0 голосов
/ 15 января 2020

Так что я очень новичок в JSON в получении и использовании и использовании этих веб-API в целом. Может кто-нибудь сказать мне, если они видят что-то не так с моим кодом? Я пытаюсь использовать поиск NPI правительства, чтобы получить информацию о врачах, возвращенную в объект JSON.

Вот исходный код:

package API_Playground;

import okhttp3.*;

import java.io.IOException;

public class Main {

    // one instance, reuse
    private final OkHttpClient httpClient = new OkHttpClient();

    public static void main(String[] args) throws Exception {

        Main obj = new Main();

        System.out.println("Testing 1 - Send Http GET request");
        obj.sendGet();

        System.out.println("Testing 2 - Send Http POST request");
        obj.sendPost();

    }

    private void sendGet() throws Exception {

        Request request = new Request.Builder()
                .url("https://npiregistry.cms.hhs.gov/api/?version=2.1")
                .addHeader("first_name", "larry")
                .addHeader("last_name", "mabine")
                .addHeader("state", "GA")
                .build();

        try (Response response = httpClient.newCall(request).execute()) {

            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

            // Get response body
            System.out.println(response.body().string());
        }

    }

    private void sendPost() throws Exception {

        // form parameters
        RequestBody formBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("first_name", "john")
                .addFormDataPart("last_name", "smith")
                .addFormDataPart("state", "GA")
                .build();

        Request request = new Request.Builder()
                .url("https://npiregistry.cms.hhs.gov/api?")
                .post(formBody)
                .addHeader("version", "2.0")
                .build();

        System.out.println(request.toString());

        try (Response response = httpClient.newCall(request).execute()) {

            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

            // Get response body
            System.out.println(response.body().string());
        }

    }

}

Информация API NPI: https://npiregistry.cms.hhs.gov/registry/help-api

Ошибка, которую я получаю:

{"Errors":
[
    {
        "description": "Unsupported Version",
        "field": "version",
        "number": "17"
    }
]
...