- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 HTTPS 请求 POST 到客户端服务器之一。反过来,从服务器返回的响应 JSON 响应中缺少“{”。
当客户测试时,他们会收到正确的响应。
您能帮我调试代码内容有什么问题吗?同样的问题仍然存在,缺少“<”字符XML 响应,同时将 header 更改为“Accept”、“application/xml”。
// Request headers that needs to be passed
public Object generateHttpHeader(String requestType, IYodRobot pRobot, Object request) {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Connection"," Keep-Alive");
headers.put("Content-type", "application/x-www-form-urlencoded");
headers.put("Accept", "application/json");
headers.put("Accept-Language", "en-US");
headers.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)");
headers.put("Accept-Encoding", "identity");
headers.put("Cookie", "Aggregator=stuff");
// Headers generated that need to be passed.
return headers;
}
// Posting request
protected String postRequestLocal(Object generateHttpHeader){
URL url;
HttpsURLConnection urlConn;
//Generating HTTPS connection object
OutputStreamWriter wout = null;
BufferedReader br = null;
StringBuffer ResponseData = new StringBuffer();
InputStreamReader isr = null;
String contents = "";
String reasonForRetry = "";
String URL = "https://XXXXXXX/service/Servlet";
//Constructing request
String request = "UID=" + "abcdefgh" + "&KEY=" + "12344";
System.out.println("2^^^^^^^ URL is: " + URL);
System.out.println("Request is ::"+request);
try {
//URL connection creation
url = new URL(URL);
urlConn = (javax.net.ssl.HttpsURLConnection)
url.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setInstanceFollowRedirects(false);
String clientKeyStore = "XXXXXXXX";
String password = "XXXXXX";
// 2- WAY SSL Connectivity
urlConn.setSSLSocketFactory(getFactory(new File("/XXX/XXX/XX/XXX/" + clientKeyStore), password));
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.connect();
HashMap<String, String> headers = (HashMap<String, String>) generateHttpHeader;
System.out.println("2^^^^^^^^^^^^^printing url connection " + urlConn.toString());
for (Iterator<Map.Entry<String, String>> headerIter = headers.entrySet().iterator();
headerIter.hasNext();) {
System.out.println(" In here.......................");
Map.Entry<String, String> entry = headerIter.next();
urlConn.setRequestProperty(entry.getKey(), entry.getValue());
System.out.println("2^^^^^^^ printing key " + entry.getKey().toString() + " value is" +
entry.getValue().toString());
}
//Hashmap for request headers that needs to be passed`enter code here`
Map<String, List<String>> requestHeaders = urlConn.getRequestProperties();
YDataLogger.out("2^^^^^^^^^^Request Header Fields is: "+ requestHeaders);
YDataLogger.out("urlConn.getRequestMethod"+urlConn.getRequestMethod());
wout = new OutputStreamWriter(urlConn.getOutputStream(), "UTF-8");
System.out.println("2^^^^^^^^^checkpoint 8");
wout.write(request);
System.out.println("2^^^^^^^^^wout" + wout.toString());
wout.flush();
wout.close();
/*
* Getting the soap error message if we have error.
*/
System.out.println("2^^^ Trying to print the fault");
System.out.println("2^^^^^^ urlConngetResponseCode--->" + urlConn.getResponseCode());
System.out.println("2^^^^^^ urlConngetResponseMessage--->" + urlConn.getResponseMessage());
if (urlConn.getResponseCode() == 200) {
isr = new InputStreamReader(urlConn.getInputStream());
} else if(urlConn.getResponseCode() == 500) {
throw new SiteApplicationErrorException("Server down", urlConn.getResponseMessage());
}
else {
isr = new InputStreamReader(urlConn.getErrorStream());
}
Map<String, List<String>> responseHeaders = urlConn.getHeaderFields();
System.out.println("2^^^^^^^^^^Response Header Fields is: "+responseHeaders);
System.out.println("2^^^^^^^ response header---"+urlConn.getHeaderFields());
br = new BufferedReader(isr);
String s = null;
while ((s = br.readLine()) != null) {
ResponseData.append(s);
}
//Diconnecting URL connecttion
urlConn.disconnect();
/*
* getting the soap Data/Message if we have error.
*/
Date end = new Date();
System.out.println("2^^^ Properties" + urlConn.getRequestProperties());
System.out.println("2^^^^^" + end.toLocaleString());
contents = ResponseData.toString();
}
//catching exception
catch (Exception ex) {
System.out.println("2^^^^^ getStackTrace-->\n" + getStackTrace(ex));
reasonForRetry = ex.getMessage();
在 https 失败时打印堆栈跟踪
if (ex.getMessage().contains(
"server returned http response code: 500")) {
throw new SiteApplicationErrorException(
"2^^^^Top Level Error - Returned HTTP response code: 500 :: Exact error"
+ ex.getMessage());
} else {
System.out.println("2^^^^^ getStackTrace-->\n" + getStackTrace(ex));
throw new GeneralException(ex.toString() + "\n"
+ ex.getMessage());
}
} finally {
if (wout != null) {
wout.close();
}
if (isr != null) {
isr.close();
}
}
// Printing the response returned back
System.out.println("2^^^^^^^^^Contents : "+contents);
}
最佳答案
我的猜测是,Web 服务期望参数 UID 和 KEY 以 JSON(或 XML)形式传递,而不是 application/x-www-form-urlencoded。
关于java - JSONException : A JSONObject text must begin with '{' at character 1 error in HTTPS POST response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46520818/
我有 7 个协议(protocol),我想在网站上显示。但该网站仅显示 4 个协议(protocol),尽管 JSON 文件中有 7 个协议(protocol)。我决定用调试器检查一下,它通过了 4
我在此代码中遇到 JSON 异常: JSONObject jObject = new JSONObject(JSONString); pontosUsuario.setIdUsuari
我创建了以下价格和移动型号名称的 json 数组。此数据是从表名称为“products”的 wamp phpmyadmin 服务器读取的: { "products": [
我正在从 linkedHashMap 获取 JSON 值 LinkedHashMap lst = JsonPath.parse(json).read("$.projects[0].issuetypes
我正在尝试使用来自 Guardian API 的 JSON 对象。 这是我调用的结果: https://pastebin.com/wqggLEeZ 这是我的代码 JSONObject root = n
我正在尝试从数据库中检索数据。我向此 PHP 文件发送请求: $code, "message"=>$message); echo json_encode($err); }
JSONObject login = new JSONObject(); login.put("Key1", "Value1"); 我只是想用键值对创建一个简单的 JSON 对象。我收到此异常“Unh
我试图解析下面的 json 并在第 150 行(在代码中标记)捕获了 JSONException,但我无法弄清楚为什么会发生。目标是找到特定包的测试列表并将其存储在 arraylist 中。 当我将
我在解析 JSON 时遇到很多问题,其中一个值具有空值。 { "available_from" : "2012-11-05T00:00:00Z", "available_to" : "2012-11-
我有一个带有一些 spring crud 存储库的经典 spring web 应用程序。 我正在尝试以经典的 Angular 形式保存我的实体,但我随机收到此错误: .w.s.m.s.DefaultH
我正在尝试将字符串转换为 JSONObject。这是我的代码: JSONObject obj = new JSONObject(str); Vehicle.feature 文件包含: Scen
@Override protected Integer doInBackground(Void... params) { String readMyJSON = rea
我想解析一些从网上下载的 JSONArray 中的 json。我认为这很简单,但无法让它发挥作用。 看来问题出在 JSON 格式上。我尝试了不同的方法修复它,但没有任何帮助。 我用这种方法下载字符串:
我收到以下错误: JSONException: No value for error 在 Android Studio 中的我的日志(查看日志截图的链接: /image/45eeF.png )上,它说
它可以很好地从数据库读取和写入,但会给出 JSONException 错误。任何帮助将不胜感激! 谢谢 最佳答案 此错误发生在 JSONObject 的 getter 函数中,这意味着您尝试使用 JS
我想从此链接获取json数据:link &这是我的代码: private static String url = "https://graph.facebook.com/fql?q=SELECT%20
描述:在 OnRespose 方法中,我可以在日志中看到从 froecast.io 接收的数据,但是当我传递“response.body().string()”时,即来自 Forecast.io 的数
我正在尝试从此网址中抓取书名:http://api.nytimes.com/svc/books/v2/lists/2010-10-01/trade-fiction-paperback?api-key=
我一直在尝试在 android studio 中为我的应用程序创建一个登录系统,但我不断收到此错误 org.json.JSONException: Value Connection of type j
我有一个 iOS 应用程序和一个 Android 应用程序,可以使用 RESTFul Web 服务。 当我向服务进行查询时,我得到一个像这样返回的 JSON 对象。 [ { "
我是一名优秀的程序员,十分优秀!