Как передать заголовок в симулированном клиенте, особенно в заголовках HTTP? - PullRequest
0 голосов
/ 22 января 2019

Я пытался с шаблоном Rest передавать HTTP-заголовки и работать, как ожидалось, но кое-как не работать с симулированным клиентом.

Код клиента отдыха: -

import org.springframework.http.HttpHeaders;

RestTemplate restTemplate = new RestTemplate();
HttpHeaders httpHeader = new HttpHeaders();
httpHeader.set("appsecret-proof", header);
HttpEntity<?> request = new HttpEntity<>(httpHeader);
String url = "https://localhost/groups/{pathVariable}/members/";
Map<String, String> map = new HashMap<>();
map.put("pathVariable", pathVariable);
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
                                                   .queryParam("token", token);
String uriBuilder = builder.build().toString();

ResponseEntity<MemberObject> responseEntity = restTemplate.exchange(uriBuilder, HttpMethod.POST, request,MemberObject.class, map);

MemberObject memberObject = null;
if (responseEntity != null && responseEntity.getBody() != null) {
    memberObject = responseEntity.getBody();
}

Код клиента Fegin: -

import org.springframework.web.bind.annotation.RequestHeader;

@PostMapping(value = "/groups/?token=xyz")
MemberObject getMemberGroup(@RequestHeader("appsecret-proof") String appsecretProof);

Но женский клиент выдает ошибку как:

{"error":{"message":"Authentication credentials could not be found.","type":"Authentication Error","code":404,"sub_code":0}}.

Жестко закодированный токен в симулированном клиенте все еще выдает ту же ошибку. Это может быть ошибка с заголовками .... любое предложение, как настроить заголовок в симулированном клиенте.

1 Ответ

0 голосов
/ 28 июня 2019

Так вы должны структурировать вызов, если используете Feign:

import feign.Headers;
import feign.Param;
import feign.RequestLine;
...
@RequestLine("POST /groups/?token={appSecretProof}")
@Headers("Content-Type: application/json")
MemberObject getMemberGroup(@Param("appSecretProof") String appSecretProof);

В приведенном выше фрагменте значение appSecretProof подставляется в URL во время выполнения в качестве соответствующего значения токена .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...