http接口说明

合集下载

一、接口HTTP协议

一、接口HTTP协议

⼀、接⼝HTTP协议⼀、接⼝API: Application Programming Interface,应⽤程序可编程接⼝1)接⼝分类硬件接⼝:具有连接功能、适配。

两个硬件设备之间的连接⽅式(⽐如⿏标和电脑通过USB接⼝连接)软件接⼝:软件程序之间数据交互的通道(⽤户界⾯是软件接⼝)2)软件接⼝分类程序内部接⼝:是客户端与服务器的接⼝,⽤来实现客户端和服务器的数据传递外部接⼝:⽐如通过第三⽅登录,第三⽅⽀付,通过调⽤外部接⼝并返回当前的系统3)常见的接⼝协议webService接⼝:使⽤soup协议通过http传输,请求报⽂和返回报⽂都是xml格式的,常⽤测试⼯具有soupUIhttp协议接⼝:⽬前使⽤最⼴泛的,使⽤HTTP协议来传输数据,常见的请求⽅法有get、post等,常⽤测试⼯具有postman、jmeter dubbo、 websocket、 ws://...、 ftp://等协议。

4)接⼝测试本质是基于某种协议,发送⼀个请求给服务器,然后服务器返回⼀个响应,然后对响应数据进⾏分析,判断是否与我们预期的返回⼀致,从⽽验证功能是否正确。

⼆、HTTP协议解读1)http协议:超⽂本传输协议2)https:简单的来说,就是http的安全版,在http下加⼊了SSL层(SSL主要⽤户web的安全传输协议)3)http的默认端⼝号是:80 ,默认的端⼝在url可以不加 https的默认端⼝号是:443 ,默认的端⼝在url可以不加4)HTTP请求过程客户端:PC端的应⽤程序浏览器 APP ⼩程序HTTP通信:客户端发送给服务器的请求信息 服务器返回给客户端的响应信息客户端:前端----->主动请求。

能够发起对应的请求的客户端。

服务端:后端----->被动接受。

1.当⽤户在浏览器的地址栏中输⼊⼀个URL并按回车键后,浏览器会向HTTP服务器发送HTTP请求。

HTTP请求主要分为“Get”和“Post”两种⽅法。

HTTP接口文档

HTTP接口文档

HTTP接口文档接口域名:一、工作方式....................................................................... 错误!未定义书签。

1.1 密码验证方式............................................................................... 错误!未定义书签。

二、字符编码....................................................................... 错误!未定义书签。

三、响应格式....................................................................... 错误!未定义书签。

四、短信发送(单条,多条发送)...................................... 错误!未定义书签。

五、接收状态报告................................................................ 错误!未定义书签。

5.1 主动获取状态............................................................................... 错误!未定义书签。

六、接收上行短信(回复)................................................. 错误!未定义书签。

6.1 主动接收上行短信(回复) ......................................................... 错误!未定义书签。

6.2 推送接收上行短信(回复) ......................................................... 错误!未定义书签。

http接口的调用之json入参及map入参

http接口的调用之json入参及map入参

http接⼝的调⽤之json⼊参及map⼊参1.按照⽂档先写⼊参数,这⾥主要介绍Json格式的String字符串,包括拼接数组String sqr_arry [] = new String[rowList.size()];for(int i = 0; i < rowList.size(); i++) {FieldList field_p = rowList.get(i);//查询每个家庭成员的姓名和⾝份证String xm = field_p.get("pxm");String sfzh = field_p.get("pzjhm");String sq = "{\"xm\":\""+xm+"\",\"sfzh\":\""+sfzh+"\"}";sqr_arry [i] = sq;//把各个家庭对象放进数组}String sqrs = "";for(int i = 0;i < rowList.size(); i++ ){sqrs += sqr_arry [i]+",";//从数组中取对象并做拼接}int idx = stIndexOf(",");//去掉最后⼀个逗号sqrs = sqrs.substring(0,idx);String sqr = "["+sqrs+"]";String pararsa="{\"jkbm\":\"11\",\"batchid\":\""+ID+"\",\"sqrs\":"+sqr+",\"remark\":\""+cxyy+"\"}";//sqr为数组,解析完外层必须不带双引号“”;String urlPost = "http://IP地址:端⼝号/***/***/***.action"; //接⼝地址String resValue = HttpPost(urlPost, pararsa);//请求接⼝/*** 模拟HttpPost请求* @param url* @param jsonString* @return*/public static String HttpPost(String url, String jsonString){CloseableHttpResponse response = null;CloseableHttpClient httpClient = HttpClientBuilder.create().build();//创建CloseableHttpClientHttpPost httpPost = new HttpPost(url);//实现HttpPostRequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(3000).setConnectTimeout(3000).build();httpPost.setConfig(requestConfig); //设置httpPost的状态参数httpPost.addHeader("Content-Type", "application/json");//设置httpPost的请求头中的MIME类型为jsonStringEntity requestEntity = new StringEntity(jsonString, "utf-8");httpPost.setEntity(requestEntity);//设置请求体try {response = httpClient.execute(httpPost, new BasicHttpContext());//执⾏请求返回结果if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {return null;}HttpEntity entity = response.getEntity();if (entity != null) {String resultStr = EntityUtils.toString(entity, "utf-8");return resultStr;} else {return null;}} catch (Exception e) {logger.error("httpPost method exception handle-- > " + e);return null;} finally {if (response != null){try {response.close();//最后关闭response} catch (IOException e) {logger.error("httpPost method IOException handle -- > " + e);}}if(httpClient != null){try {httpClient.close();} catch (IOException e) {logger.error("httpPost method exception handle-- > " + e);}}}}/*** 模拟HttpGet 请求* @param url* @return*/public static String HttpGet(String url){//单位毫秒RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(3000).setConnectTimeout(3000).setSocketTimeout(3000).build();//设置请求的状态参数CloseableHttpClient httpclient = HttpClients.createDefault();//创建 CloseableHttpClient HttpGet httpGet = new HttpGet(url);httpGet.setConfig(requestConfig);CloseableHttpResponse response = null;try {response = httpclient.execute(httpGet);//返回请求执⾏结果int statusCode = response.getStatusLine().getStatusCode();//获取返回的状态值if (statusCode != HttpStatus.SC_OK) {return null;} else {String result = EntityUtils.toString(response.getEntity(), "UTF-8");return result;}} catch (Exception e) {logger.error("httpget Exception handle-- > " + e);} finally {if (response != null){try {response.close();//关闭response} catch (IOException e) {logger.error("httpget IOException handle-- > " + e);}}if(httpclient != null){try {httpclient.close();//关闭httpclient} catch (IOException e) {logger.error("httpget IOException handle-- > " + e);}}}return null;}⼯具类HttpUtils ⼊参为mappackage sr.shjz_zt2.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.List;import java.util.Map;import net.sf.json.JSONArray;/*** ⽤于模拟HTTP请求中GET/POST⽅式** @author**/public class HttpUtils {/*** 发送GET请求** @param url* ⽬的地址* @param parameters* 请求参数,Map类型。

webservice接口与HTTP接口学习笔记

webservice接口与HTTP接口学习笔记

webservice接⼝与HTTP接⼝学习笔记⼀、webservice 的概念Web 是使应⽤程序可以与平台和编程语⾔⽆关的⽅式进⾏相互通信的⼀项技术。

Web 服务是⼀个软件接⼝,它描述了⼀组可以在⽹络上通过标准化的 XML 消息传递访问的操作。

它使⽤基于 XML 语⾔的协议来描述要执⾏的操作或者要与另⼀个 Web 服务交换的数据。

⼀组以这种⽅式交互的 Web 服务在⾯向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应⽤程序。

简单的说WebService是⼀个SOA(⾯向服务的编程)的架构,它是不依赖于语⾔,不依赖于平台,可以实现不同的语⾔(通过 xml 描述)间的相互调⽤,通过Internet进⾏基于Http协议的⽹络应⽤间的交互。

通过SOAP在Web上提供的软件服务,使⽤WSDL⽂件进⾏说明,并通过UDDI进⾏注册。

XML:(Extensible Markup Language)扩展型可标记语⾔。

⾯向短期的临时数据处理、⾯向万维⽹络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。

是XML Web Service 的通信协议。

当⽤户通过UDDI找到你的WSDL描述⽂档后,他通过可以SOAP调⽤你建⽴的Web服务中的⼀个或多个操作。

SOAP是XML⽂档形式的调⽤⽅法的规范,它可以⽀持不同的底层接⼝,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL ⽂件是⼀个 XML ⽂档,⽤于说明⼀组 SOAP 消息以及如何交换这些消息。

⼤多数情况下由软件⾃动⽣成和使⽤。

UDDI (Universal Description, Discovery, and Integration) 是⼀个主要针对Web服务供应商和使⽤者的新项⽬。

HTTP请求和MIME介绍

HTTP请求和MIME介绍

HTTP请求和MIME介绍HTTP请求和MIME介绍HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文。

请求行(格式):Method Request-URI HTTP-Version CRLFMethod:方法。

GET 请求获取由Request-URI所标识的资源。

POST 在Request-URI所标识的资源后附加新的数据。

HEAD 请求获取由Request-URI所标识的资源的响应消息报头。

PUT 请求服务器存储一个资源,并用Request-URI作为其标识。

DELETE 请求服务器删除由Request-URI所标识的资源。

TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。

CONNECT 保留将来使用。

OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。

Request-URI:统一资源标识。

HTTP-Version:HTTP的版本。

CRLF:回车换行。

(\r\n)例:GET /form.html HTTP/1.1 \r\nHTTP响应在接收和解释请求消息后,服务器会返回一个HTTP响应消息。

与HTTP请求类似,HTTP响应也是三个部分组成,分别是:状态行、消息报头、响应正文。

状态行:状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

格式: HTTP-Version Status-Code Reason-Phrase CRLF例如: HTTP/1.1 200 OK \r\n状态代码:状态代码由3位数字组成,表示请求是否被理解或被满足。

状态描述:状态描述给出了关于状态代码的简短的文字描述。

状态代码的第一个数字定义了响应的类别,后面两位没有具体的分类。

第一个数字有五种可能的取值:- 1xx: 指示信息—表示请求已接收,继续处理。

- 2xx: 成功—表示请求已经被成功接收、理解、接受。

- 3xx: 重定向—要完成请求必须进行更进一步的操作。

Http接口调用示例教程

Http接口调用示例教程

Http接⼝调⽤⽰例教程介绍HttpClient库的使⽤前,先介绍jdk⾥HttpURLConnection,因为HttpClient是开源的第三⽅库,使⽤⽅便,不过jdk⾥的都是⽐较基本的,有时候没有HttpClient的时候也可以使⽤jdk⾥的HttpURLConnection,HttpURLConnection都是调jdk 库的,下⾯给出实例代码:import sun.misc.BASE64Encoder;import java.io.*;import .HttpURLConnection;import .URL;import .URLConnection;public class Main {public static void main(String[] args) throws Exception {String url = "https:///ocr_service?app_key=%s";String appKey = "xxxxxx"; // your app_keyString appSecret = "xxxxxx"; // your app_secreturl = String.format(url, appKey);OutputStreamWriter out = null;BufferedReader in = null;String result = "";try {String imgData = imageToBase64("example.jpg");String param="{\"app_secret\":\"%s\",\"image_data\":\"%s\"}";param=String.format(param,appSecret,imgData);URL realUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("POST"); // 设置请求⽅式conn.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的conn.connect();out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");out.append(param);out.flush();out.close();in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}System.out.println(result);}public static String imageToBase64(String path){String imgFile = path;InputStream in = null;byte[] data = null;try{in = new FileInputStream(imgFile);data = new byte[in.available()];in.read(data);in.close();}catch (IOException e){e.printStackTrace();}BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}}然后介绍⼀下HttpClient,只给出实例代码,不封装成⼯具类,因为理解基本⽤法后,⾃⼰封装⼯具类也是很容易的HttpClient的GET请求CloseableHttpClient httpClient = HttpClients.createDefault();//https:///search?utf8=%E2%9C%93&q=jeeplatform&type=URIBuilder uriBuilder = new URIBuilder("https:///search");uriBuilder.addParameter("q","jeeplatform");HttpGet httpGet = new HttpGet(uriBuilder.build());CloseableHttpResponse httpResponse = httpClient.execute(httpGet);int statusCode = httpResponse.getStatusLine().getStatusCode();if(statusCode==200){HttpEntity entity = httpResponse.getEntity();System.out.println(EntityUtils.toString(entity,"UTF-8"));}httpClient.close();httpResponse.close();HttpClient的POST请求,与GET请求类似CloseableHttpClient httpClient = HttpClients.createDefault();//https:///sie?query=%E8%8A%B1%E5%8D%83%E9%AA%A8&hdq=AQ7CZ&ekv=3&ie=utf8&String uri = "https:///sie";List<NameValuePair> params= new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("query","花千⾻"));StringEntity entity = new UrlEncodedFormEntity(params,"UTF-8");HttpPost httpPost = new HttpPost(uri);httpPost.setEntity(entity);CloseableHttpResponse httpResponse = httpClient.execute(httpPost);int statusCode = httpResponse.getStatusLine().getStatusCode();if(statusCode == 200){System.out.println(EntityUtils.toString(httpResponse.getEntity()));}httpClient.close();httpResponse.close();上⾯例⼦是可以⽀持访问签名要求没那么⾼的接⼝,然后访问⾃签名https的站点,那就要建⽴⼀个⾃定义的SSLContext对象,该对象要有可以存储信任密钥的容器,还要有判断当前连接是否受信任的策略,以及在SSL连接⼯⼚中取消对所有主机名的验证,如果还是使⽤默认的HttpClient是会有下⾯的异常:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target给出解决⽅法:public static CloseableHttpClient getClient() {RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder.create();ConnectionSocketFactory plainSF = new PlainConnectionSocketFactory();registryBuilder.register("http", plainSF);// 指定信任密钥存储对象和连接套接字⼯⼚try {KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());// 信任任何链接TrustStrategy anyTrustStrategy = new TrustStrategy() {@Overridepublic boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {return true;}};SSLContext sslContext = SSLContexts.custom().useTLS().loadTrustMaterial(trustStore, anyTrustStrategy).build();LayeredConnectionSocketFactory sslSF = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);registryBuilder.register("https", sslSF);} catch (KeyStoreException e) {throw new RuntimeException(e);} catch (KeyManagementException e) {throw new RuntimeException(e);} catch (NoSuchAlgorithmException e) {throw new RuntimeException(e);}Registry<ConnectionSocketFactory> registry = registryBuilder.build();// 设置连接管理器PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry);RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(TIMEOUT_SECONDS * 1000).setConnectTimeout(TIMEOUT_SECONDS * 1000).build();return HttpClientBuilder.create().setConnectionManager(connManager).setMaxConnTotal(POOL_SIZE).setMaxConnPerRoute(POOL_SIZE).setDefaultRequestConfig(requestConfig).build(); }然后CloseableHttpClient httpClient = getClient()就可以然后HttpClient语法相对⽐较繁杂?如果觉得⽐较⿇烦,可以⽤Spring框架的RestTemplate,这⾥要创建⼀个⾃定义的bean,根据需要创建,代码⽰例://访问⾃签名https的要点HttpComponentsClientHttpRequestFactory requestFactory =new HttpComponentsClientHttpRequestFactory(HttpClientUtil.getClient());RestTemplate restTemplate = new RestTemplate(requestFactory);*/Bean result= restTemplate.getForObject(digitalgdOauthUrl, Bean.class);。

http接口文档模板

http接口文档模板

竭诚为您提供优质文档/双击可除http接口文档模板篇一:新http接口说明文档http接口文档接口域名:/api/一、密码验证方式................................................. . (1)二、字符编码................................................. .. (1)三、响应格式................................................. .. (2)四、短信发送(单条,多条发送)............................................... . (2)五、接收状态报告................................................. . (3)5.1主动获取状态................................................. ................................................... (3)六、接收上行短信(回复)............................................... (4)6.1主动接收上行短信(回复)............................................... . (4)七、取剩余短信条数................................................. (5)八、取已发送总条数................................................. (5)九、接口安全(绑定ip)............................................... (6)十、取发送记录................................................. . (6)一、密码验证方式接口密码使用“登录密码”与“用户名”拼接字符串后能过md5加密进行验证如登录密码是:123123如用户名是:test接口密码(pwd)=md5(登录密码+用户名)pwd=md5(123123test)pwd=b9887c5ebb23ebb294acab183ecf0769二、字符编码服务器接收数据可以是gbk或utF-8编码字符,默认接收数据是gbk编码,如提交的是utF-8编码字符,需要添加参数encode=utf8。

http短信接口 (2)

http短信接口 (2)

http短信接口
HTTP短信接口是一种通过HTTP协议发送和接收短信的方式。

它可以实现在互联网上用HTTP通信协议发送短信,并且可以接收短信服务商返回的状态报告。

使用HTTP短信接口发送短信,通常需要提供以下参数:
1. 请求URL:短信服务商提供的API接口地址。

2. 账号和密码:短信服务商提供的账号和密码,用于进行身份验证。

3. 手机号码:短信的接收者手机号码。

4. 短信内容:需要发送的短信内容。

发送短信时,需要将以上参数以指定的格式组装成HTTP 请求,发送到短信服务商的接口地址。

短信服务商接收到请求后,会根据提供的账号和密码进行身份验证,并将短
信内容发送给指定的手机号码。

发送成功后,短信服务商会返回一个接口响应,通知发送结果。

需要注意的是,不同的短信服务商可能有不同的HTTP请求参数和参数格式,具体使用方法需要参考短信服务商提供的接口文档或示例代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、查询菜品列表接口(DONE)
1、功能说明
接受提供的菜品
XXX画面XXX功能(比如人口查询画面-查询| 人口查询画面-详细等)2、接口调用说明
2.1获取地址
2.2http请求方式
GET
2.3数据返回格式
JSON
2.4传递参数
2.5成功返回结果
[
“serverResponse”:”Success”,
“totalRecords”:”52”,
“page” : “10”,
“pageSize” : “5”,
“data”:{
“id” : “123”,
“itemName” : “皇堡”,
“priceNow” : “10”,
“pricePast” : “12”,
“servicePicture” :”s9118668.jpg”,
“serviceStars” : “3”
},
…….
{
“id” : “”,
“itemName” : “”,
“priceNow” : “”,
“pricePast” : “”,
“servicePicture” :” s9118668.jpg”,
“serviceStars” : “3”
}
]
2.6返回结果解释
二、查询广告接口(DONE)
1、功能说明
接受广告图片,目前为一张
2、接口调用说明
2.1获取地址
2.2http请求方式
GET
2.3数据返回格式
JSON
2.4传递参数
2.5成功返回结果
{
"serverResponse":"Success",
“advertisePicture” : “0f736a68b929b0955b319ebc41336.jpg”}
2.6返回结果解释
三、查询订单列表接口(DONE)
1、功能说明
根据指定的客户id查询订单
2、接口调用说明
2.1获取地址
2.2http请求方式
GET
2.3数据返回格式
JSON
2.4传递参数
参数说明
这个接口可以作为多种用途:
搜索正在进行中的订单:customerID和orderStatus 2.5成功返回结果
{
"serverResponse":"Success",
“data”:[
{
“orderNo” : “02135”
“orderTime” : “11:00”,
“orderStatus” : “评价完毕”,
“paidAmount” : “30”
}
……
]
}
2.6返回结果解释。

相关文档
最新文档