HTTPPOST-代码失败,但通过Postman成功

时间:2019-05-26 13:28:56

标签: java http-post httpclient postman okta-api

我正在通过http帖子发送JSON请求。后端要求我发送两个标头,即-Authorization和Content-Type。然后将原始JSON请求作为正文。我通过Postman工具通过Post方法发送请求,消息成功通过。但是,当我通过代码发送带有相同标头的相同请求时,我得到一个错误的请求-错误。

我最小化了要检查的测试范围。 我只通过邮递员发送了两个标头,这是响应:

标题

授权:“ bearer” +令牌。结构为“ bearer”关键字+空格+ Okta令牌。 内容类型:application / json

回复:

标题

Content-Type→应用程序/ json; charset = utf-8

严格的运输安全→max-age = 31536000

X内容类型选项→nosniff

请求上下文→appId = cid-v1:dc220dda-e515-4dd4-b324-c078a1b8fac4

日期→星期日,2019年5月26日13:23:01 GMT

内容长度→29

身体 {     “消息”:“无请求正文” }

但是,当我通过代码发送相同的内容时,会收到错误请求错误。请帮助:(

  HttpClient httpclient1;
  HttpPost httppost1;
  //ArrayList<NameValuePair> postParameters1 = null;
  httpclient1 = HttpClientBuilder.create().build
  httppost1 = new HttpPost(Constants.URL);

  //  httppost1.setEntity(new UrlEncodedFormEntity(postParameters1,"UTF-8"));
  //  httppost1.setEntity(new StringEntity(request,"UTF-8"));

  httppost1.setHeader("Authorization", token);
  httppost1.setHeader("Content-Type", "application/json");
  // httppost1.setHeader("Content-Length", strlength);
//   httppost1.setHeader("Accept", "application/json");

 //  StringEntity entity = new StringEntity(request,ContentType.APPLICATION_JSON);
 //  httppost1.setEntity(entity);

 HttpResponse response1 = httpclient1.execute(httppost1);
 InputStream is = response1.getEntity().getContent();

 HttpEntity entity1 = httppost1.getEntity();

 Header[] headers = httppost1.getAllHeaders();
 System.out.println(headers.length);
 for(int i=0; i<headers.length;i++)
 {
   System.out.println(headers[i]);
 }


String result = convertInputStreamToStringCommonIO(is);
System.out.println();
System.out.println(result);

int code1 = response1.getStatusLine().getStatusCode();
System.out.println("Code: "+code1+"");
String reason1 = response1.getStatusLine().getReasonPhrase();
System.out.println("Description: "+reason1 +"");

邮递员的临时请求标头:

UserAgent:PostmanRuntime / 7.13.0

接受: /

Cache-Contro:无缓存

邮递员令牌:*****

主持人:*****

接受编码:gzip,dflate

内容长度:

连接:保持活动状态

这是我得到的错误:

{“ errorCode”:“ E0000021”,“ errorSummary”:“错误的请求。接受和/或Content-Type标头可能与支持的值不匹配。”,“ errorLink”:“ E0000021”,“ errorId”:“ oae5BpTGp_5RjaFtGn_Zm_mhw“,”错误原因“:[]} 代号:400 说明:错误的请求

有人知道为什么它会通过代码失败吗?谢谢。

0 个答案:

没有答案