如何使用okhttp进行GET请求

时间:2016-02-06 06:24:25

标签: android-networking

我是Android开发人员的新手,我想知道如何使用okhttp执行GET请求。我已经提到http://square.github.io/okhttp/,但他们只有POST请求的示例。我试过这个 -

        okHttpClientLogin = new OkHttpClient();
        requestBodyLogin = new FormBody.Builder()
                .addEncoded("name", name_input) // params
                .addEncoded("keys", keys_input) //params
                .build();

        requestLogin = new Request.Builder()
                .addHeader("Authorization", token_type + " " +access_token)
                .url(LOGIN_URL)
                .get()
                .build();

并收到错误:

  

{“status”:{“status”:206,“msg”:“找不到记录”},“user”:null}

我知道为什么会出现这个错误,因为没有输入参数。我也尝试在requestBodyLogin内传递.get(),但它不允许。

1 个答案:

答案 0 :(得分:1)

自OkHTTP 2.4以来,函数addQueryParameter。您可以使用HttpUrlStringjava.net.URL作为网址。 基本上,只需创建一个新的HttpUrl.Builder()并使用函数addQueryParameter

取自javadocs的示例:

HttpUrl url = new HttpUrl.Builder()
       .scheme("https")
       .host("www.google.com")
       .addPathSegment("search")
       .addQueryParameter("q", "polar bears")
       .build();

http://square.github.io/okhttp/3.x/okhttp/okhttp3/HttpUrl.html

http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/HttpUrl.Builder.html#addQueryParameter-java.lang.String-java.lang.String-