关于http请求调用接口

1.这是通过json传值进行调用

(1)public static void appadd() {
        try {
            //创建连接
            URL url = new URL(ADD_URL);
            HttpURLConnection connection = (HttpURLConnection) url
                    .openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            connection.connect();
            //POST请求
            DataOutputStream out = new DataOutputStream(
                    connection.getOutputStream());
            JSONObject obj = new JSONObject();
            obj.element("mesConent",  java.net.URLEncoder.encode("郭郭"));
            obj.element("phoneList", "15662165280");

out.writeBytes(obj.toString());
            out.flush();
            out.close();
            //读取响应
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String lines;
            StringBuffer sb = new StringBuffer("");
            while ((lines = reader.readLine()) != null) {
                lines = new String(lines.getBytes(), "utf-8");
                sb.append(lines);
            }
            System.out.println(sb);
            reader.close();
            // 断开连接
            connection.disconnect();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

(2)xmlInfo是json字符窜

  public static String doHttpPost(String xmlInfo,String URL){         
         System.out.println("发起的数据:"+xmlInfo);       
         InputStream instr  = null;
         java.io.ByteArrayOutputStream out = null;              
          try{                          
                 URL url = new URL(URL);                
                 URLConnection urlCon = url.openConnection();               
                 urlCon.setDoOutput(true);              
                 urlCon.setDoInput(true);               
                 urlCon.setUseCaches(false);    
                 urlCon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");       
                 DataOutputStream printout = new DataOutputStream(urlCon.getOutputStream());            
                 printout.writeBytes(xmlInfo);               
                 printout.flush();              
                 printout.close();              
                 //读取响应
                 BufferedReader reader = new BufferedReader(new InputStreamReader(
                         urlCon.getInputStream()));
                 String lines;
                 StringBuffer sb = new StringBuffer("");
                 while ((lines = reader.readLine()) != null) {
                     lines = new String(lines.getBytes(), "utf-8");
                     sb.append(lines);
                 }
                 System.out.println(sb);
                 reader.close();    
             return sb.toString();
          }catch(Exception e){              
                 e.printStackTrace();
                return "0";
          }             
          finally {             
                 try {          
                        out.close();   
                        instr.close();  
                         
                 }catch (Exception ex) {      
                        return "0";
                     }                  
                 }                 
          }             

2  通过参数传值例如url传值 ?a=?&b=?

利用httpcliend

String url="";
     HttpClient client1=new HttpClient();
     client1.setConnectionTimeout(30000);
     PostMethod postMethod = new PostMethod(url);
     client1.getParams().setContentCharset("UTF-8");
     postMethod.setParameter("businesId", "1");
     postMethod.setParameter("itemId", "2");

try {
        
        client1.executeMethod(postMethod);
         JSONObject result_code=  (JSONObject) JSONObject.parse(postMethod.getResponseBodyAsString());
         String result_id=result_code.getString("state");
         String error_msg=result_code.getString("error");
         if(result_id.equals("200")){
            
         }
    } catch (HttpException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    } catch (IOException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    }

注意的事情

就是在提交请求的时候会出现编码规范

application/x-www-form-urlencoded    在发送前编码所有字符(默认)
multipart/form-data     不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain     空格转换为 "+" 加号,但不对特殊字符编码。

这些是httpclient调用最基本的包

时间: 2024-10-11 12:54:10

关于http请求调用接口的相关文章

Http Client请求调用接口

引用Nettonsoft.Json 引用System.Net.Http /// <summary> /// Http Client请求 /// </summary> /// <param name="url">api地址</param> /// <param name="dic">参数,这里用的是json格式</param> /// <returns></returns>

http请求POST和GET调用接口以及反射动态调用Webservices类

此代码是API.WebSrvices动态调用的类,做接口调用时很实用. Webservices动态调用使用反射的方式很大的缺点是效率低,若有更好的动态调用webservices方法,望各位仁兄不吝贴上代码. using System; using System.IO; using System.Net; using System.Text; using System.Web; using System.Collections.Generic; using System.CodeDom.Compi

java编程——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)

编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: 1 package com.zhang.java; 2 3 public class LoginSample { 4 public LoginSample() { //构造方法 5 // System.out.println("构造方法被调用!"); 6 } 7 8 public boolean login(String ln, String

java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)

第一步: 1.为项目配置 Tomcat 为 server: 2.导入 mysql的jar包 到项目目录中: 第二步:编码 1.数据库连接类ConnectMysql.java代码: 1 package com.testing.mysql; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 6 public class ConnectMysql { 7 //设置连接的成员变量 8 public Connection

ajax跨域请求调用webservice接口

1.WebService 接口编写 步骤:新建web项目=>添加web service=>编写方法接口=>然后发布(本地测试可以直接把这个web service运行起来). 关键如何让外部Ajax 调用. 首先,配置WebService 项目配置文件(web.config)红色部分必须配置,这样第三方才能调用接口方法(经测试通过,直接粘贴就ok),不懂可以百度. <configuration> <system.web> <webServices> &l

python调用接口,python接收post请求接口(附完整代码)

与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接口为数据科学家使用框架提供了方便. 众所周知,Spark框架主要由Scala语言实现,它还包含少量的Java代码.Spark面向用户的编程接口也是Scala.然而,Python在数据科学领域一直占据着重要的地位.仍然有大量的数据工程师使用各种Python数据处理和科学计算库,如numpy.熊猫.sc

微信公众号调用接口返回码

返回码 说明 -1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 获取access_token时AppSecret错误,或者access_token无效.请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口 40002 不合法的凭证类型 40003 不合法的OpenID,请开发者确认OpenID(该用户)是否已关注公众号,或是否是其他公众号的OpenID 40004 不合法的媒体文件类型 40005 不合法的文件类型 40006 不合法的文件大小 4000

使用HBuilder开发移动APP:ajax调用接口数据

既然要做APP,与接口交互式少不了的,除非只是想做一个纯静态的APP.所以html5+的环境准备好后,我最先开始研究的就是如何与接口交互. 使用HBuilder新建示例教程后,里面会有一个ajax(网络请求)的列子,文件目录是examples/ajax.html.看了下这个文件的代 码,它的功能就是点击“提交”按钮后提交参数给接口,然后根据选择的返回数据格式,将一段字符串打印出来.我准备改造下这段代码,改由页面加载时调用列表 接口,并在APP里显示这段列表,毕竟这种情况应该经常会用到. 1.在l

C#post调用接口并上传文件

/// <summary> /// C#调用接口上传json数据,并且带文件上传 /// </summary> /// <param name="url">接口地址</param> /// <param name="filePath">文件路径</param> /// <returns></returns> public string RequestPost(string