HTTP 调用使用 python 但不适用于 Android okhhtp

问题描述 投票:0回答:0

我在使用 Android 时遇到了一个奇怪的问题。

我想做一个http调用https://api.moffi.io/api/orders/add.

我正在使用改造并定义了这个方法:

@Headers("Content-Type: application/json")
@POST("orders/add")
fun order(@Header("Authorization") token: String, @Body order: Order): Call<JsonNode>

使用授权令牌调用它时,我得到:

错误:USER_MUST_BE_CONNECTED。

现在当我用 python 做同样的事情时:

order = query(method="POST", url="/orders/add", data=body_order, auth_token=auth_token)

def query(  # pylint: disable=too-many-arguments
    method: str,
    url: str,
    auth_token: str,
    params: Dict[str, str] = None,
    headers: Dict[str, str] = None,
    data: Dict[str, Any] = None,
) -> Dict[str, Any]:
    """
    Query Moffi API

    :param method: Used method (GET, POST, OPTIONS…)
    :param url: Moffi endpoint URL
    :param auth_token: Authentication token
    :param headers: custom headers
    :param data: body data
    :return: Json response
    :raise: RequestException
    """

    if not url.startswith(MOFFI_API):
        if not url.startswith("/"):
            url = f"/{url}"
        url = f"{MOFFI_API}{url}"

    if params:
        url = f"{url}?{urlencode(params)}"

    ciheaders = CaseInsensitiveDict()
    if headers is not None:
        for key, value in headers.items():
            ciheaders[key] = value

    ciheaders["Accept"] = "application/json"
    ciheaders["Authorization"] = f"Bearer {auth_token}"

    if method.lower() not in requests.__dict__:
        raise RecursionError(f"Unknown method {method}")
    method = requests.__dict__[method.lower()]

    try:
        result = method(url=url, headers=ciheaders, json=data)
    except requests.exceptions.RequestException as ex:
        raise RequestException from ex

    if result.status_code > 399:
        raise RequestException(f"Request error {result.status_code} {result.text}")

    return result.json()

工作正常。

我猜有差异,但我不明白它是什么。

更多细节,这里是Android代码:https://github.com/moutyque/MoffiSimple

还有蟒蛇:https://github.com/tduboys/moffi

感谢任何帮助

python android http okhttp
© www.soinside.com 2019 - 2024. All rights reserved.