package com.ifpdos.udi.sdk.binderhttpd;

import android.os.RemoteException;
import com.ifpdos.sdk.httpd.binder.BinderSocketDns;
import com.ifpdos.sdk.httpd.binder.aidl.IServer;
import com.ifpdos.sdk.httpd.binder.aidl.Request;
import com.ifpdos.sdk.httpd.binder.aidl.RequestLine;
import com.ifpdos.udi.sdk.UdiSdk;
import java.io.IOException;
import java.util.Map;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.Protocol;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;

/* JADX INFO: loaded from: classes.dex */
public class BinderHttpdInterceptor implements Interceptor {
    private final BinderSocketDns mDns;

    public BinderHttpdInterceptor(BinderSocketDns binderSocketDns) {
        this.mDns = binderSocketDns;
    }

    @Override // okhttp3.Interceptor
    public Response intercept(Interceptor.Chain chain) throws IOException {
        com.ifpdos.sdk.httpd.binder.aidl.Response responseSendRequest;
        Request request = chain.request();
        IServer server = this.mDns.getServer(request.url().host());
        if (server == null) {
            throw new IOException("server not connect : " + request.url());
        }
        try {
            if (request.header(UdiSdk.HEADER_FIELD_SERVICE_NAME) != null) {
                responseSendRequest = ServiceWaiter.getInstance().sendRequest(server, toBinderHttpdRequest(request), request.header(UdiSdk.HEADER_FIELD_SERVICE_NAME));
            } else {
                responseSendRequest = server.sendRequest(toBinderHttpdRequest(request));
            }
            if (responseSendRequest == null) {
                throw new IOException("response is null : " + request.url());
            }
            return toBinderHttpdResponse(request, responseSendRequest);
        } catch (RemoteException unused) {
            throw new IOException("server disconnect : " + request.url());
        }
    }

    private Response toBinderHttpdResponse(Request request, com.ifpdos.sdk.httpd.binder.aidl.Response response) {
        Response.Builder builder = new Response.Builder();
        builder.request(request);
        builder.code(response.getCode());
        builder.message(response.getStatusLine().message);
        builder.protocol(Protocol.HTTP_1_0);
        for (Map.Entry<String, String> entry : response.getHeaderMap().entrySet()) {
            builder.addHeader(entry.getKey(), entry.getValue());
        }
        builder.body(toResponseBody(response.getHeader("Content-Type"), response.getBody()));
        return builder.build();
    }

    private ResponseBody toResponseBody(String str, byte[] bArr) {
        if (bArr == null) {
            bArr = "".getBytes();
        }
        if (str != null) {
            return ResponseBody.create(MediaType.parse(str), bArr);
        }
        return ResponseBody.create(MediaType.parse("application/octet-stream"), bArr);
    }

    private com.ifpdos.sdk.httpd.binder.aidl.Request toBinderHttpdRequest(Request request) throws IOException {
        Request.Builder builder = new Request.Builder();
        String strEncodedPath = request.url().encodedPath();
        String strEncodedQuery = request.url().encodedQuery();
        if (strEncodedQuery != null && !strEncodedQuery.isEmpty()) {
            strEncodedPath = strEncodedPath + "?" + strEncodedQuery;
        }
        if (RequestLine.METHOD_POST.equals(request.method())) {
            Sink sink = new Sink();
            request.body().writeTo(sink);
            builder.post(strEncodedPath, sink.getData());
        } else if (RequestLine.METHOD_GET.equals(request.method())) {
            builder.get(strEncodedPath);
        } else {
            throw new IOException(request.method() + " is not support");
        }
        for (String str : request.headers().names()) {
            builder.addHeader(str, request.header(str));
        }
        return builder.build();
    }
}
