由于项目抓的紧,发现一个url传参的问题,忙里偷闲整理了一下。
首先得说明,我是要用过另一个项目的url获取json串解析出来给自己的接口使用,这是在java中完成。一般的情况是这样的:
1 public static void main(String args[]){ 2 String url="http://123.56.6.112:2080/ec_app_api/article/getfirst?params={v:1}"; //通过?在后面传参 3 StringBuilder json = new StringBuilder(); 4 try { 5 URL urlObject = new URL(url); 6 URLConnection uc = urlObject.openConnection(); 7 BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(),"UTF-8")); 8 String inputLine = null; 9 while ( (inputLine = in.readLine()) != null) { 10 json.append(inputLine); 11 } 12 in.close(); 13 } catch (MalformedURLException e) { 14 e.printStackTrace(); 15 } catch (IOException e) { 16 e.printStackTrace(); 17 } 18 String json1=json.toString(); 19 System.out.println(json1); 20 Map<String,Object> mapa = new HashMap<String,Object>(); //map的value必须为object 21 mapa = JSONObject.fromObject(json1); 22 System.out.println(mapa); 23 Map<String,Object> mapb = JSONObject.fromObject(mapa.get("data")); //获取date里面的参数,这也是一个map集合 24 System.out.println(mapb); 25 String title=mapb.get("title").toString(); 26 String content=mapb.get("content").toString(); 27 String id=mapb.get("id").toString(); 28 System.out.println("@@@@@@@@@@@@@@"+title+"@@@@@@@@@@@@@@@@");
然而,今天的项目是通过postman插件里面的raw请求可以成功,而一般的form—date是不成功的。查资料后才发现raw是一种原始的字符串请求方式。因此找到相关的方法就好了;下面是请求的代码:
public static void main(String args[]) throws Exception{ String jsonTemp="{\"method\": \"GetCourtServItemList\",\"version\": \"ljapp_v1.0.0\",\"courtId\":283}"; String method="GetCourtServItemList"; String url = "http://115.28.5.221:8080/api/GetCourtServItemList.json"; HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(url); StringEntity postingString = new StringEntity(jsonTemp);// jsonTemp的传递 post.setEntity(postingString); post.setHeader("Content-type", "application/json"); HttpResponse response = httpClient.execute(post); String content = EntityUtils.toString(response.getEntity()); System.out.println(content); }
好了,这样请求就成功了。
时间: 2024-10-05 09:19:36