0

外部 API を使用していくつかのリソースを GET および POST しています。ローカルで私のコードは、さまざまなエンドポイント (GET、POST ...) の呼び出しや Postman でも正常に動作しますが、別のプレートフォーム (場所) でコードを実行しようとすると、リソースは次のとおりです)、POST 呼び出しが原因で 412 HTTP エラーが発生しました。インターネットで調べたところ、(変更しようとした) エンティティの ETagd を生成し、それを私のヘッダーに追加する必要があることがわかりました。 POST エンドポイント。そのために、ShallowEtagHeaderFilterと @Bean アノテーション (フィルター メソッドの上) と @SpringBootApplication アノテーションをクラスの上に使用しました。これが私のコードです。

package main.Runners;

import io.testproject.java.annotations.v2.Parameter;
import okhttp3.*;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.configurationprocessor.json.JSONArray;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import org.springframework.context.annotation.Bean;
import org.springframework.web.filter.ShallowEtagHeaderFilter;
import javax.servlet.Filter;


@SpringBootApplication
public class ActionRunner {

    @Parameter(description = "the project ID")
    public static String projectId = "xxx";

    @Parameter(description = "the test ID")
    public static String testId = "yyy";


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

        try {

            OkHttpClient client = new OkHttpClient().newBuilder()
                                          .build();
            Request request = new Request.Builder()
                                      .url("https://api.testproject.io/v2/projects/"+projectId+"/tests/"+testId)
                                      .method("GET", null)
                                      .addHeader("Authorization", "nzmo4DI08ykizYgcp9-5cCTArlxq7k7zt9MYhGmTcRk1")
                                      .build();
            Response response = client.newCall(request).execute();

            System.out.println("================ this is our response headers ::: \n"+ response.headers());

        } catch(Exception e) {
            System.out.println(e);
        }
    }

    @Bean
    public ShallowEtagHeaderFilter shallowEtagHeaderFilter(){
        return new ShallowEtagHeaderFilter();
    }
}

GET 応答ヘッダーで ETag パラメータを生成できないため ( reponse.headers() をチェックした後)、本当にあなたの助けが必要です。前もって感謝します!

4

0 に答える 0