javascript
let request = require('request');
let urlEncode = require('urlencode');
let crypto = require('crypto');
let baseUrl = 'https://api.qixin.com/APIService/overduetax/getOverDueTaxStat';
let appkey = '正式appkey';
let secretKey = '正式secret_key';
let timeStamp = new Date().getTime();
const hash = crypto.createHash('md5');
let sign = hash.update(appkey + timeStamp + secretKey).digest('hex');
let urlParams = {
name: 'name的值'
}
let concatParams = []
for (let key in urlParams) {
concatParams.push(key + '=' + urlParams[key]);
}
let options = {
'method': 'GET',
'url': baseUrl + '?' + concatParams.join('&'),
'headers': {
'Connection': 'keep-alive',
'Auth-version': '2.0',
'appkey': appkey,
'timestamp': timeStamp,
'sign': sign
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
java
import com.mashape.unirest.http.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.security.MessageDigest;
import java.util.Calendar;
import java.net.URLEncoder;
public class main {
// 获取字符串的md5值
public static String getMD5Str(String str) {
byte[] digest = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes(StandardCharsets.UTF_8));
digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
String s = String.format("%02x", b);
sb.append(s);
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception {
String baseUrl = "https://api.qixin.com/APIService/overduetax/getOverDueTaxStat";
String appkey = "正式appkey";
String secretKey = "正式secret_key";
Calendar calendar = Calendar.getInstance();
Long timestamp = calendar.getTime().getTime();
String sign = getMD5Str(appkey + timestamp + secretKey);
// 设置url参数
Map<String, String> urlParams = new HashMap<String, String>();
urlParams.put("name", "name的值");
List<String> concatParams = new ArrayList<String>();
for (String s : urlParams.keySet()) {
concatParams.add(s + "=" + URLEncoder.encode(urlParams.get(s), StandardCharsets.UTF_8));
}
Unirest.setTimeouts(0, 2000);
try {
// 发送get请求,得到响应
HttpResponse<String> response = Unirest.get(baseUrl + "?" + String.join("&", concatParams))
.header("Auth-version", "2.0")
.header("appkey", appkey)
.header("timestamp", timestamp + "")
.header("sign", sign)
.header("Content-Type", "application/json")
.asString();
System.out.println(response.getBody());
} catch (Exception e) {
e.printStackTrace();
}
}
}
csharp
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Text;
using System.Text.Encodings.Web;
using System.Security.Cryptography;
namespace csharp
{
class Program
{
public static string GetMD5Str(string str)
{
MD5 md5 = MD5.Create();
byte[] buffer = Encoding.Default.GetBytes(str);
byte[] MD5Buffer = md5.ComputeHash(buffer);
//将字节数组转换成字符串
string strResult = "";
for (int i = 0; i < MD5Buffer.Length; i++)
{
strResult += MD5Buffer[i].ToString("x2");
}
return strResult;
}
static void Main(string[] args)
{
var baseUrl = "https://api.qixin.com/APIService/overduetax/getOverDueTaxStat";
var appkey = "正式appkey";
var secretKey = "正式secret_key";
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
var timeStamp = Convert.ToInt64(ts.TotalMilliseconds).ToString(); // 当前utc时间戳
var sign = GetMD5Str(appkey + timeStamp + secretKey); // 请求签名
// 设置url参数
Dictionary<string, string> urlParams = new Dictionary<string, string>();
urlParams.Add("name", "name的值");
UrlEncoder ins = UrlEncoder.Create();
List<string> concatParams = new List<string>();
foreach (KeyValuePair<string, string> param in urlParams)
{
concatParams.Add(param.Key + "=" + ins.Encode(param.Value));
}
// 发送GET请求
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Auth-version", "2.0");
httpClient.DefaultRequestHeaders.Add("appkey", appkey);
httpClient.DefaultRequestHeaders.Add("timestamp", timeStamp);
httpClient.DefaultRequestHeaders.Add("sign", sign);
httpClient.DefaultRequestHeaders.Add("Connection", "keep-alive");
var urlWithParams = baseUrl + "?" + string.Join("&", concatParams.ToArray());
var get = httpClient.GetAsync(urlWithParams);
// 输出响应
Console.WriteLine(get.Result.Content.ReadAsStringAsync().Result);
}
}
}
python
# -*- coding:utf-8 -*-
import requests
import json
import time
import hashlib
from urllib.parse import urlencode
def md5Encode(srcStr):
'''计算字符串的md5值'''
m = hashlib.md5()
m.update(srcStr.encode('utf-8'))
return m.hexdigest()
# 接口信息
baseUrl = 'https://api.qixin.com/APIService/overduetax/getOverDueTaxStat'
appkey = '正式appkey'
secretKey = '正式secret_key'
timeStamp = int(time.time()) * 1000
# 设置请求头部信息
headers = {
'Auth-version': '2.0', # 指定接口验证版本
'appkey': appkey,
'timestamp': str(timeStamp),
'sign': md5Encode(appkey + str(timeStamp) + secretKey),
'Connection': 'keep-alive'
}
# 请求参数
urlParams = {
'name': 'name的值'
}
# 构造url
url = '{}?{}'.format(baseUrl, urlencode(urlParams))
print(url)
# 调用接口
response = requests.get(url, headers=headers)
# 处理响应数据
jsonContent = json.dumps(str(response.content, encoding='utf-8'))
rspResult = jsonContent.encode('utf-8').decode('unicode-escape')
print(rspResult)