前一阶段,由于系统接口变更(由原get请求变更为post请求),导致对应接口的参数化数据需要进行处理。
注:post请求中,参数化数据需要使用json串。
如下图:
原get请求参数化信息:
S_CV_EDU_LEVEL=4&S_CURRENT_CAREER_STATUS=2&CompanyId=121111111&S_CV_JOB_LEVEL_ALL=16000100040000%3B16000100070000%3B16000100080000&ip=xx.xx.xx.xx&start=80&sort=complex_v17&rows=20&S_DISCLOSURE_LEVEL=2&S_EXCLUSIVE_COMPANY=%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%3B%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&S_CV_ACTIVE_TIME_LAST=1625209200%2C1632985200&S_WORK_YEARS=192210%2C202009&UserId=211111111&client=ihrsearch&DepartmentId=211111111&S_DESIRED_CITY=111
现post请求参数化信息:
{
"parameter": {
"S_CV_EDU_LEVEL": "4",
"S_CURRENT_CAREER_STATUS": "2",
"CompanyId": "121111111",
"S_CV_JOB_LEVEL_ALL": "16000100040000%3B16000100070000%3B16000100080000",
"ip": "xx.xx.xx.xx",
"start": 80,
"sort": "complex_v17",
"rows": 20,
"S_DISCLOSURE_LEVEL": "2",
"S_EXCLUSIVE_COMPANY": "%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%3B%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8",
"S_CV_ACTIVE_TIME_LAST": "1625209200%2C1632985200",
"S_WORK_YEARS": "192210%2C202009",
"UserId": "211111111",
"client": "ihrsearch",
"DepartmentId": "211111111",
"S_DESIRED_CITY": "111"
}
}
具体转换代码(Java版)
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
public class GetConvertPost {
Logger logger = LoggerFactory.getLogger(ExtractData.class);
public String getConvertPost(String url){
StringBuffer sb = new StringBuffer();
String jsonStart = "{"parameter":{";//json字符串头
String jsonEnd = "}}";//json字符串尾
String args [] = url.split("&");//按分割
sb.append(jsonStart);
for(String arg:args){
if(arg.indexOf("=")!=-1){
//对start及rows字段值特殊处理
if(arg.indexOf("start")!=-1 ||arg.indexOf("rows")!=-1){
String s1 ="""+arg.substring(0,arg.indexOf("="))+"":";
String s2 = arg.substring(arg.indexOf("=")+1)+",";
sb.append(s1).append(s2);
}else {//常规处理
String s3 ="""+arg.substring(0,arg.indexOf("="))+"":";
String s4 = """+arg.substring(arg.indexOf("=")+1)+"",";
sb.append(s3).append(s4);
}
}
}
int strlength = sb.length();
sb.delete(strlength-1,strlength);//删除最后一位(逗号)
sb.append(jsonEnd);
return sb.toString();
}
public static void main(String [] args){
GetConvertPost getConvertPost = new GetConvertPost();
String str ="S_CV_EDU_LEVEL=4&S_CURRENT_CAREER_STATUS=2&CompanyId=121111111&S_CV_JOB_LEVEL_ALL=16000100040000%3B16000100070000%3B16000100080000&ip=xx.xx.xx.xx&start=80&sort=complex_v17&rows=20&S_DISCLOSURE_LEVEL=2&S_EXCLUSIVE_COMPANY=%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%3B%E6%B2%B3%E5%8C%97%E4%BA%92%E5%8A%A8%E5%BD%B1%E8%A7%86%E4%BC%A0%E5%AA%92%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&S_CV_ACTIVE_TIME_LAST=1625209200%2C1632985200&S_WORK_YEARS=192210%2C202009&UserId=211111111&client=ihrsearch&DepartmentId=211111111&S_DESIRED_CITY=111";
String result = getConvertPost.getConvertPost(str);
}
}



