永发信息网

可以对http请求中的参数设置编码方式吗?如何设置

答案:2  悬赏:60  手机版
解决时间 2021-02-13 04:43
可以对http请求中的参数设置编码方式吗?如何设置
最佳答案
HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。
  服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。
// 请求信息的输入流
private InputStream input;

//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理

public void parseInput(){
byte [] b = new byte[1024];
try {
input.read(b);
} catch (IOException e) {
LogInfo.error("读取请求信息出错"+e.getMessage());
return;
}
String inputStr = new String(b);
String type = inputStr.substring(0,inputStr.indexOf(" "));
if("GET".equals(type)){
parseGetString(inputStr);
}
else{
parsePostString(inputStr);
}

}
//路径信息,,其中/CCB表示pathInfo
private String pathInfo;
//请求资源路径,pathInfo中最后一个斜杆后米啊的字符串,如/bank/CCB,其中/CCB表示urlPattern
private String urlPattern;
//请求参数,在Get请求中第一个问号后面的字符串,如account=abc&pwd=123
private String queryStr;
//解析GET请求
public void parseGetString(String getStr){

String allStr = getStr;
String info = allStr.substring(allStr.indexOf("/"),allStr.indexOf(" HTTP"));
int end = info.indexOf("?");
if(end == -1){
pathInfo = info;
}else{
pathInfo = info.substring(0,end);
queryStr = info.substring(end + 1);

}
urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
parseQueryInfo(queryStr);
}
//解析POST请求
public void parsePostString(String postStr){
String qStr = postStr.trim();

pathInfo = postStr.substring(postStr.indexOf("/"),postStr.indexOf(" HTTP"));
urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
queryStr = qStr.substring(qStr.lastIndexOf(System.getProperty("line.separator"))).trim();
parseQueryInfo(queryStr);
}
解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。
全部回答
用url.openconnection()得到一个urlconnection对象,然后用urlconnection.setrequestproperty()来设置头信息!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
要写一部小说,名为《人间四月芳菲尽》,不知
奥驰汽车地址在哪,我要去那里办事
神沐园大众浴池地址在什么地方,想过去办事
放下,即是拥有,回头,就在岸边是什么意思
人类历史上已经出现过哪三种商品经济?它们的
为什么女孩到了娘家不能和老公住在一起
比亚迪s6倒车镜总成多少钱
东莞龙凤山庄门票多少钱
魏忠贤拿一把魔剑是什么电视
王者荣耀,白起 曹操 周瑜 哪个好
兴源洗车行地址在哪,我要去那里办事
早上起来头发油 可以用湿毛巾润湿头发吗
我想兼职美团外卖,求助怎么加入
东风裕隆旧车置换地址在什么地方,想过去办事
城桥在哪里啊,我有事要去这个地方
推荐资讯
我是北海市的一名考生,今年中考我想上南宁二
中国电信符离营业厅地址在哪,我要去那里办事
下列说法中,正确的是()。A.上月未记账,本
安安理发地址好找么,我有些事要过去
牛奶味的冰棒怎么做
文言文如何进行检测反馈
汉城灯饰地址好找么,我有些事要过去
加数减去乙数等于268.如果甲数增加36,乙数增
柴静从央视离职之后 会不会去凤凰卫视与亚洲
平板后盖怎么打开
用中国九分法计算成人烧伤面积,以下哪一项是
重德路在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?