Java 如何选择函数I';我要在建筑工人课上使用?

Java 如何选择函数I';我要在建筑工人课上使用?,java,android,builder,Java,Android,Builder,我有一个方法,我使用它将所有请求发送到服务器。 在这个方法中,我使用的是Builder类。 我只是想知道如何根据函数的输入在每个请求中通过“if”指定生成器函数的类型。 以下是我的功能: public String sendHttpRequest(String url, String parameters,String type) { try { OkHttpClient client = new OkHttpClient(); MediaType m

我有一个方法,我使用它将所有请求发送到服务器。 在这个方法中,我使用的是Builder类。 我只是想知道如何根据函数的输入在每个请求中通过“if”指定生成器函数的类型。 以下是我的功能:

public String sendHttpRequest(String url, String parameters,String type) {

    try {
        OkHttpClient client = new OkHttpClient();

        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, parameters);
        Request request = new Request.Builder()

                .url(url)

                /*what I'm going to do is somthing like this:

                if(type.equal("get")){
                .get()
                 }
                 if(type.equal("post")){
                .post()
                 }
                 */
                .addHeader("content-type", "application/json")
                .addHeader("cache-control", "no-cache")

        Response response = client.newCall(request).execute();
        return response.body().string().toString();

    } catch (IOException ex) {
    }
    return "";
}

那我该怎么办

我不知道这个OkHttp库,但由于它是一个构建器,我想您可以在调用build()方法之前,分部分创建它。比如:

Request.Builder builder  = new Request.Builder();
builder.url(url)
if(type.equal("get")){
    builder.get();
}
if(type.equal("post")){
    builder.post();
}
builder.addHeader("content-type", "application/json");
builder.addHeader("cache-control", "no-cache");

Request request = builder.build();
Response response = client.newCall(request).execute();

您可以通过链接或单独使用构建器

您可以尝试以下方法:

Request.Builder builder = new Request.Builder()
        .url(url)
        .addHeader("content-type", "application/json")
        .addHeader("cache-control", "no-cache");
if(type.equals("get")){
    builder.get();
} else if(type.equals("post")){
    builder.post(/*body*/);
}
Request request = builder.build();

Response response = client.newCall(request).execute();

太棒了!谢谢纳宾:)