gpt4 book ai didi

java - 从 android 发送 json 数组作为 post 参数

转载 作者:行者123 更新时间:2023-12-01 05:47:59 24 4
gpt4 key购买 nike

我需要通过 android 的 post 方法发送 json 数组作为参数...并接收 jsonarray 作为响应..

下面提到的java请求应该是什么转换..??

curl -H "X-OpenSRF-service: open-ils.search" --data 'osrf-msg=[{"__p" : {"threadTrace" : 0, "payload" : { "__c" : "osrfMethod","__p" : { "params" :"30007004981493","method" : "open-ils.search.biblio.find_by_barcode"}},"type" : "REQUEST","locale" : "en-US"},"__c" : "osrfMessage"} ]' http://localhost/osrf-http-translator

我已经这样做了..

    HttpParams httpParams = new BasicHttpParams();

HttpClient client = new DefaultHttpClient(httpParams);

HttpPost httpost = new HttpPost("http://"+hostname+"/osrf-http-translator");
// httpost.setHeader("Accept", "application/json");
// httpost.setHeader("Content-type", "application/json");
httpost.setHeader("X-OpenSRF-service", "open-ils.search");
System.out.println("2");
JSONObject data = new JSONObject();
JSONObject _p = new JSONObject();
JSONObject _p1 = new JSONObject();
JSONObject osrfmsg = new JSONObject();
HttpResponse response = null;
try {
_p.put("params",bookid);//"30007004981493"
_p.put("method","open-ils.search.biblio.find_by_barcode");
JSONObject payload = new JSONObject();
payload.put("_c", "osrfMethod");
payload.put("_p", _p);
_p1.put("threadTrace",0);
_p1.put("payload", payload);
_p1.put("locale","en-US" );
_p1.put("type", "REQUEST");
osrfmsg.put("_c","osrfMessage");
osrfmsg.put("_p",_p1);
data.put("osrf-msg",osrfmsg);


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

JSONArray osrfmsg2=new JSONArray();
osrfmsg2.put(osrfmsg);

httpost.getParams().setParameter("osrf-msg",osrfmsg2);
response = client.execute(httpost);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));

StringBuilder builder = new StringBuilder();
for (String line = null; (line = reader.readLine()) != null;)
{ builder.append(line).append("\n"); }

JSONTokener tokener = new JSONTokener(builder.toString());
JSONArray finalResult = new JSONArray(tokener);

但我无法获取 json 数组...

还有其他方法吗?

最佳答案

您正在构造一个 JSONObject 作为参数,

尝试使用

JSONArray 作为您的有效负载对象。

 JSONArray payload = new JSONArray();

并使用集合。希望有帮助。另外,您发送的上下文类型不是 JSON,而是表单编码的

关于java - 从 android 发送 json 数组作为 post 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com