Uber API:请求端点产量错误不受支持

时间:2015-08-27 01:20:27

标签: url post http-status-code-301 uber-api

我之前在这里看过这样的另一篇文章,但它没有多大帮助。无论如何,我完成了所有OAuth步骤,并获得了访问令牌。以下是我收到的错误 -

{“message”:“不支持”,“代码”:“not_found”}

我已尝试手动使用URl并尝试使用POST。这是我试过的网址 -

http://sandbox-api.uber.com/v1/requests?access_token=m5MunZjxNVCXbg1p4DXPQjK76DYFaz&product_id=653e6788-871e-4c63-a018-d04423f5b2f7&start_latitude=40.11690903&start_longitude=-75.01428223&end_latitude=40.650729&end_longitude=-74.0095369

收到错误后,我尝试了一个POST(感谢我在这里看到的另一篇文章)沙箱请求导致301 Moved Permanently Response。

我使用的POST代码我也在这里找到了我将在下面发布的内容(我对所有这些都很新)。

URL url4 = new URL("http://sandbox-api.uber.com/v1/requests");
Map<String,Object> params2 = new LinkedHashMap<>();
params2.put("access_token", AccessToken);
params2.put("product_id", productID);
params2.put("start_latitude", latitude);
params2.put("start_longitude", longitude) ;
params2.put("end_latitude", endLatitude);
params2.put("end_longitude", endLongitude);
StringBuilder postData = new StringBuilder();

for (Map.Entry<String,Object> param : params2.entrySet()) {
    if (postData.length() != 0) postData.append('&');
        postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
        postData.append('=');
                                      postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));        }                                       
            byte[] postDataBytes = postData.toString().getBytes("UTF-8");

HttpURLConnection conn = (HttpURLConnection)url4.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-formurlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));         
conn.setDoOutput(true);
conn.getOutputStream().write(postDataBytes);

Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
for ( int c = in.read(); c != -1; c = in.read() )
    System.out.print((char)c);

我在这里做一些根本错误的事情吗?我已经得到了估计/产品,所以我不确定我做错了什么。

为奇怪的格式化道歉,这里新的并且它似乎不想让我缩进某些行。

由于

1 个答案:

答案 0 :(得分:1)

您提供的代码存在一些问题:

  • 沙箱端点使用HTTPS(而不是HTTP)
  • 您应该通过Authorization标头提供访问令牌,而不是URL参数。
  • Content-Type值应为application / json。