1
  1. 今度は、aws-iot api.so からシャドウを取得する必要があります。郵便配達員に同じリクエストを送信すると、応答で 200ok が返されました。
  2. アプリ側から、403 ieforbidden を受け取りました。
  3. ここでは、リクエストをフェッチするために「okhttp クライアント」を使用しました。

200ok の応答を得た画像も添付されています。

aws-iot api 200ok レスポンスから Thing Shadow を取得する

今私はアプリ側から何をしていますか?私はその許可の問題だと思いますが、解決できないと思います提案してください.

また、次のようにコードを添付しました:-

Interceptor interceptor = new Interceptor() {
@Override
public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException {
Request newRequest = chain.request()
.newBuilder()
.addHeader("content-type", "application/x-www-form-urlencoded")
.addHeader("host", "ag7fce49bf5ti.iot.us-east-1.amazonaws.com")
.addHeader("x-amz-date", "20160919T054450Z")
.addHeader("authorization", "AWS4-HMAC-SHA256 Credential=AKIAJ6XB3CLURFLV6ISQ/20160919/us-east-1/iotdata/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=af7cd8cee7dd4763cff3a1c8f91cdde1fa22cc68012248a694cee098981bc623")
.build();
return chain.proceed(newRequest);
}
};

    OkHttpClient.Builder builder = new OkHttpClient.Builder();
    builder.interceptors().add(interceptor);
    client = builder.build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://ag7fce49bf5ti.iot.us-east-1.amazonaws.com/things/dm_project/shadow/")
            //.addConverterFactory(client)
            .client(client)
            .build();
4

0 に答える 0