ヘッダーは、HttpServletRequestのから抽出することができません

Sudip Bolakhe:

私はマイクロサービスアーキテクチャに取り組んでいます。私は別のドメイン名を持つ3種類のアプリケーションがあります。仮定アプリケーション1は、APIがあります。

 "/app/foo-bar"

このAPIは、アプリケーション2のいくつかのサービスから呼び出され、サービスはまた、いくつかのAPIによってトリガーされます。このAPIは、アプリケーション3から呼び出すことができます。

私は今、必要なのAPIは、アプリケーション1に呼び出されたとき、私はそれが呼び出されたアプリケーションから知りたい、です。(アプリケーション2またはアプリケーション3のドメイン名)

私はこれを試してみました:

request.getHeader("referer");

しかし、これに戻り、私はヌル

これを解決する方法はありますか?

メリーランド州。Sajedulカリム:

あなたは、呼び出し元の起源のためにそのAPIのヘッダを取得する必要がAPI.Alsoの呼び出し中に、設定されたヘッダに持っています。

APIの呼び出し時に設定ヘッダapp/foo-bar

RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("referer", "APP_1");

HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

ヘッダー内のAPIを取得

@RequestMapping(value = "/app/foo-bar")
    public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers) {


        List<String> parameters = headers.get("parameters");

        String referer = null;
        for (String header : parameters) {
            if (header.equals("referer")) {
                referer = header;
            }
        }
        System.out.println(referer);

        return referer;
    }

ここでは輸入品です

import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=233149&siteId=1