2
내가 API 호출을 만들기 위해 노력하고있어 및 API가 형식의 XML
기대 :발리 --- XML 게시물 HTTP 포스트, JSON 응답
<root>
<subject>Security</subject>
<request>GetSessionInfo</request>
<sessionGUID>999999999999</sessionGUID>
<userGUID></userGUID>
<emptyString/>
<lastUpdateDate>
<forceLoad>0</forceLoad>
<transporterFormat>2</transporterFormat>
<parms> {
"sessionGUID":"99999999999999"
}
</parms>
</root>
을하지만 JSON
나에게 출력을 전송합니다. 나는 Volley
를 사용하여 이러한 목표를 달성하기 위해 노력했습니다 : 라이브러리 내가 완전히 시도하고있어 작업을 지원하지 않는 경우가 Volley
내 사용에 문제의 경우, 또는
RequestQueue mRequestQueue = RequestQueueSingleton
.getInstance(this.getApplicationContext())
.getRequestQueue();
String targetURL = "http://api.myurl.com";
StringRequest postRequest = new StringRequest(Request.Method.POST, targetURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
userGUID = response;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parms = new HashMap< >();
JSONObject jsonRequest = new JSONObject();
try {
jsonRequest.put("sessionGUID", sessionGUID);
} catch (JSONException e) {
e.printStackTrace();
}
parms.put("requestData",
getXML(SECURITY, GET_SESSION_INFO, "", sessionGUID, "", null, jsonRequest));
return parms;
}
};
postRequest.setTag("POST");
System.out.println("we've attempted to use Volley");
mRequestQueue.add(postRequest);
With the reference GetXML methods as follows:
public String getXML(String subject, String request, String userGUID, String sessionGUID,, Date lastUpdateDate, JSONObject parms) {
StringBuilder stringBuilder = new StringBuilder();
String date;
if (lastUpdateDate == null) date = "";
else date = lastUpdateDate.toString();
stringBuilder.append("<root>\n <subject>" + subject + "</subject>\n")
.append("<request>" + request + "</request>\n ")
.append("<sessionGUID>" + sessionGUID + "</sessionGUID>\n")
.append("<userGUID>" + userGUID + "</userGUID>\n")
.append("<emptyString>" + "" + "</emptyString>\n ")
.append("<lastUpdateDate>" + date + "</lastUpdateDate>\n ")
.append("<forceLoad>0</forceLoad>\n" + " <transporterFormat>2</transporterFormat>\n")
.append("<parms>" + parms.toString() + "</parms>\n" + "</root>");
String result = stringBuilder.toString();
System.out.println(result);
return result;
}
잘 모르겠어요. 나는 XML
문자열을 보내고 JSON
객체를 반환하는 사용자 정의 요청 유형을 구현해야 할 필요가 있다고 생각하지만, 문서가 상대적으로 부족하여이를 수행하는 방법을 확신 할 수 없게 만듭니다. 어떤 도움을 주시면 감사하겠습니다. 죄송합니다.