2017-07-19 52 views
0

我試圖POST使用Apache的HttpClient的發送以下(EBAY API應用程序令牌請求),和我保持獲取400:錯誤的請求錯誤,即使我的代碼看起來不錯。我得到的易趣API一個400錯誤的請求,我想不通爲什麼

下面的代碼:

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.CloseableHttpClient; 

import org.apache.http.message.BasicNameValuePair; 
import sun.misc.BASE64Encoder; 

import java.io.BufferedReader; 

import java.util.ArrayList; 
import java.util.List; 

public class OrderFileDownload { 

    public static void main(String[] args) throws Exception { 
      OrderFileDownload od = new OrderFileDownload(); 
      System.out.println(od.submitTokenRequest()); 
    } 

    public String submitTokenRequest() throws Exception { 
     String url = "https://api.sandbox.ebay.com/identity/v1/oauth2/token"; 
     CloseableHttpClient client = HttpClients.createDefault(); 

     List<BasicNameValuePair> params = new ArrayList<>(); 
     params.add(new BasicNameValuePair("grant_type","client_credentials")); 
     params.add(new BasicNameValuePair("redirect_uri","<RuRedirect-value>")); 
     params.add(new BasicNameValuePair("scope","https://api.ebay.com/oauth/api_scope")); 

     HttpPost request = new HttpPost(url); 
     request.addHeader("Content-Type", "application/x-www-form-urlencoded"); 
     request.addHeader("Authorization","Basic " + encrypt64("<Client-Id>:<ClientSecret>")); 

     HttpEntity entity = new UrlEncodedFormEntity(params); 
     request.setEntity(entity); 

     HttpResponse response = client.execute(request); 
     client.close(); 

     return response.toString(); 
    } 

    private String encrypt64(String text) { 
     BASE64Encoder enc = new BASE64Encoder(); 
     return enc.encode(text.getBytes()); 
    } 
} 

這是響應該方法返回:

HttpResponseProxy{HTTP/1.1 400 Bad Request [Content-Type: text/plain, Content-Length: 0] [Content-Type: text/plain,Content-Length: 0,Chunked: false]} 

誰能幫我想出解決辦法?

謝謝!

回答

0

我在使用eBay API時遇到了同樣的問題,但如果我在我的代碼中添加重試,試圖在一分鐘後嘗試嘗試嘗試嘗試重試。

你也可以嘗試這個,但我還沒有找到它的根本原因。

感謝,

辛格成員Parminder

相關問題