私はJersey2
を使って簡単なヘッダーを取得しようとしています。私はJersey 2.x: How to add Headers on RESTful Clientを読んで下のコードを作成するのを手伝いましたが、私は大したことはありません。提案通りにclientRequestFilter
を作成しましたが、クライアントに正しく登録する方法がわかりません。これは私の中心的な問題かもしれません。ジャージー2 - シンプルなクライアントヘッダーを取得する例
私が間違って何をしているのかを確認するために、ClientRequestFilter
を登録しているか、それ以上のものがないかどうかを確認したいと考えています。以下は私が消費しようとしているWebサービスのドキュメントとそれを消費しようとするjersey2クライアントコードです。
Webサービスドキュメント:以下
ポンポンとコードは次のとおりです。
例GET
GET https://myportal.0.site.com/ApiService.svc/Customer/1 HTTP/1.1
Content-Type: application/json
Token: <enter your unique token here>
Host: myportal.0.site.com
Content-Length: 0
Connection: Keep-Alive
ServerName: myportal
私のロジックが(にID#1と顧客を「読み」)。
ポンポンの依存関係:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.1</version>
</dependency>
コード:
final String portal = "myportal";
final String host = portal + ".0.site.com";
final String baseURL = "https://" + host + "/ApiService.svc";
final String token = "00000-0000-0000-0000-0000-000000";
final String getCustomer1URL = baseURL + "/Customer/1";
final String contentType = "application/json";
final String contentLength = "0";
final String connection = "Keep-Alive";
try {
// Headers for client.
ClientRequestFilter clientRequestFilter = new ClientRequestFilter() {
public void filter(ClientRequestContext clientRequestContext) throws IOException {
clientRequestContext.getHeaders().add("Token", token);
clientRequestContext.getHeaders().add("ServerName", serverName);
clientRequestContext.getHeaders().add("Content-Type", contentType);
clientRequestContext.getHeaders().add("Content-Length", contentLength);
clientRequestContext.getHeaders().add("Connection", connection);
}
};
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newBuilder().newClient(config);
//GET Request
final Response response = client.target(getCustomer1URL).request().get();
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
}
String output = response.readEntity(String.class);
System.out.println("Output from Server... \n");
System.out.println(output);
client.close();
} catch (Exception e) {
e.printStackTrace();
}
私は何を取得しています:
を上記で、私は<!DOCTYPE html>
の応答とを取得していますHTMLをjavascriptを含むウェブページとして...私はおそらく私が何かを正しく作っていなかったと思うか、ヘッダーを設定していないと思います適切にまたは何か他の。誰かを願って、私が間違っていることについての健全性チェックを私に与えることができます。