Search code examples
androidretrofitokhttpandroid-networkingandroidhttpclient

OKhttp PUT example


My requirement is to use PUT, send a header and a body to server which will update something in the database.

I just read okHttp documentation and I was trying to use their POST example but it doesn't work for my use case (I think it might be because the server requires me to use PUT instead of POST).

This is my method with POST:

 public void postRequestWithHeaderAndBody(String url, String header, String jsonBody) {


        MediaType JSON = MediaType.parse("application/json; charset=utf-8");
        RequestBody body = RequestBody.create(JSON, jsonBody);

        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .addHeader("Authorization", header)
                .build();

        makeCall(client, request);
    }

I have tried to search for okHttp example using PUTwith no success, if I need to use PUTmethod is there anyway to use okHttp?

I'm using okhttp:2.4.0 (just in case), thanks on any help!


Solution

  • Change your .post with .put

    public void putRequestWithHeaderAndBody(String url, String header, String jsonBody) {
    
    
            MediaType JSON = MediaType.parse("application/json; charset=utf-8");
            RequestBody body = RequestBody.create(JSON, jsonBody);
    
            OkHttpClient client = new OkHttpClient();
    
            Request request = new Request.Builder()
                    .url(url)
                    .put(body) //PUT
                    .addHeader("Authorization", header)
                    .build();
    
            makeCall(client, request);
        }