我将使用Java连接satang api服务器。 在以下代码中,con对象无法设置“ POST”请求。 我不知道原因 请帮助我。
public String placeLimitOrder(String amount,String pair,String price,String side) throws IOException, BadResponseException
{
Long lnonce=new Date().getTime();
String nonce=lnonce.toString();
String req="amount="+amount+"&nonce="+nonce+"&pair="+pair+"&price="+price+"&side="+side+"&type=limit";
String operation="orders/?"+req;
String signature=getSignature(req);
StringBuilder result = new StringBuilder();
URL url = new URL(baseUrl+operation);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput( true );
con.setInstanceFollowRedirects( false );
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "TDAX-API "+this.key);
con.setRequestProperty("Signature",signature);
con.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty( "charset", "utf-8");
con.setRequestProperty("User-Agent", "java client");
con.setUseCaches( false );
int responseCode=con.getResponseCode();
if(responseCode!=HttpURLConnection.HTTP_OK){
System.out.println(con.getHeaderField("Allow"));
throw new BadResponseException(responseCode);
}
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
return result.toString();
}
答案 0 :(得分:2)
答案 1 :(得分:0)
我遇到了同样的问题。 我已经通过以下方法解决了这个问题。 第一。将“ Content-Type”设置为“ application / json”。 并将请求参数解析到您的帖子正文中。
答案 2 :(得分:0)
这是我所发现的,我不能肯定地说这是每个人的答案,但希望它将为许多其他人解决这个问题。
似乎HttpsURLConnection实例的内部“方法”参数不是与实例上的requestMethod获取器和设置器非常相关。如果您像我一样,那么您将恢复使用android studio中的调试器,因为登录android非常糟糕。 左侧是Debug检查器,它显示URLConnection实例的内容。右侧显示的是“评估表达式”的结果
connection.getRequestMethod() //right side of image
令人沮丧的是,对此(或许多其他Android问题)没有任何明确的答案,当您尝试找到它们时,经常会收到使用他人图书馆的邀请。这不是理想的解决方案,因为在许多情况下,使用别人的图书馆需要安全审查。
希望这会有所帮助。就我而言,一切正常,但由于那里的错误,服务器正在发回BAD_REQUEST响应。