如何设置post请求编码

如何设置post请求编码,第1张

request.setContenType("UTF-8") 只是设置了内容的编码格式,并不是真正的解码。 new String(name.getBytes("IOS-8859-1"),"UTF-8") 才是真正的解码。 应该在http请求提交的时候设置,或者再web.xml加一个字符转码的拦截器 <filter><filter-name>EncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param

你需要在.NET中更改编码以支持GB2312,并在PL/SQL中对请求进行相应的更改,以使用正确的编码。

修改.NET WebService的编码:在.NET项目的Web.config文件中更改编码,例如:

<system.web>

   <globalization requestEncoding="gb2312" responseEncoding="gb2312" /></system.web>

修改PL/SQL请求的编码:在PL/SQL中更改请求的编码,以使用GB2312编码,例如:

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)

}

解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7851442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存