需要从PHP转换为Java

head头

尝试使用QwintryLogistics API和PHP中的所有文档示例,我一点也不了解PHP,而是使用Java进行编码。在文档中,所需的请求如下所示:

<?php
    define('SITE_URL', 'logistics.qwintry.com');
    define('API_KEY', 'YOUR_API_KEY'); //don't forget to set your key!

    $url =  'http://'. SITE_URL .'/api/cost';


    $data = array ( 
        'params' => array(
            'weight' => 5, // in lb
            'delivery_pickup' => 'msk_1', // full list of pickup points can be retrieved from /api/locations-list
            'insurance' => true,
            'items_value' => 500, // declaration items total cost in USD
            'retail_pricing' => true // retail / wholesale pricing?
        ),
     );
    $data_string = http_build_query($data);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '. API_KEY));
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  $data_string);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $response = curl_exec($ch);
    curl_close($ch);
    var_dump($response);

Java中的编码方法:

@Override
public String getCost(double weight, String unitsW, String toPickUp, boolean insurance, double value) throws URISyntaxException, IOException, HttpException {
    String url = BASE_URL + "/api/cost/";
    CloseableHttpClient client = HttpClients.createDefault();
    URIBuilder builder = new URIBuilder(url);
    builder
            .addParameter("weight", String.valueOf(weight))
            .addParameter("delivery_pickup", toPickUp)
            .addParameter("insurance", String.valueOf(insurance))
            .addParameter("items_value", String.valueOf(value))
            .addParameter("retail_pricing", String.valueOf(RETAIL_PRICING));

    HttpUriRequest request = new HttpPost(builder.build());
    request.addHeader("User-Agent", USER_AGENT);
    request.addHeader("Authorization", "Bearer " + API_KEY);

    HttpResponse response = client.execute(request);

    BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }
    return result.toString();
}

但不断得到回应:

{"success":false,"errorCode":0,"errorMessage":"params are empty"}

我认为问题在于设置请求参数。帮我请用Java术语翻译请求参数的结构。

MGorgon

您的PHP代码数据参数不是路径参数,而是请求参数。您必须将它们写到请求正文中,而不是将它们附加到URL中。

您可以在相关问题中看到如何做到这一点:Java-通过POST方法轻松发送HTTP参数

但是,我将研究更高级别的REST服务客户端,例如CXFJersey

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我需要从36基数转换为10基数的帮助

来自分类Dev

为什么需要从Integer转换为Int

来自分类Dev

为了使用Add(),为什么需要从ConcurrentDictionary强制转换为IDictionary?

来自分类Dev

我需要从XML List-Item转换为Indesign xml代码

来自分类Dev

机芯不要从epub转换为mobi

来自分类Dev

我需要从php调用javascript或jquery

来自分类Dev

需要从javascript访问Java类变量

来自分类Dev

需要帮助将PV公式转换为PHP

来自分类Dev

需要将char转换为小写并用Java替换

来自分类Dev

需要帮助将加密逻辑从Js转换为Java

来自分类Dev

需要将代码从C#转换为Java

来自分类Dev

需要帮助将 curl 请求转换为 java 请求

来自分类Dev

我需要帮助将算法转换为 java

来自分类Dev

需要帮助将 C# 加密方法转换为 Java

来自分类Dev

将代码从Java转换为PHP格式。

来自分类Dev

将PHP hmac签名转换为Java

来自分类Dev

java-需要从jks(java keystore)导入私钥

来自分类Dev

php需要从数组中检索键:“ dn”值

来自分类Dev

php需要从数组中检索键:“ dn”值

来自分类Dev

需要从js文件引用Java全局变量

来自分类Dev

使用Selenium Java需要从angularjs检索数据

来自分类Dev

需要从Java中的URL中提取Jpg或Png文件

来自分类Dev

在JAVA中将char转换为int时,为什么不需要强制转换?

来自分类Dev

需要从 # 和

来自分类Dev

从PHP转换为Laravel

来自分类Dev

转换为PHP数组

来自分类Dev

询问用户是否要从C转换为F的C程序,然后进行转换

来自分类Dev

PHP Carbon需要几分钟的时间并转换为天

来自分类Dev

PHP数组转换为CSV下载-第一列标题中不需要的数据