HttpURLConnection.setRequestMethod看方法说明:设置 URL 请求的方法,
GET
POST
HEAD
OPTIONS
PUT
DELETE
TRACE
以上方法之一是合法的,具体取决于协议的限制。默认方法为 GET。
虽然我发送数据的方式就是POST,但我必须自定义成其他名字。因为服务器端只接收定义好的 请求名。如果是POST,那么服务器会忽略这个请求。可能用setRequestMethod肯定是不行了,那么有什么其他方式可以实现呢? 如果是用j2me的话可以写完全自定义的请求报文,然后把报文转换为byte[]进行write。如: 对IP,端口进行连接之后操作DataOutputStream.write(str.getBytes());但是常规java该怎么做呢?
GET
POST
HEAD
OPTIONS
PUT
DELETE
TRACE
以上方法之一是合法的,具体取决于协议的限制。默认方法为 GET。
虽然我发送数据的方式就是POST,但我必须自定义成其他名字。因为服务器端只接收定义好的 请求名。如果是POST,那么服务器会忽略这个请求。可能用setRequestMethod肯定是不行了,那么有什么其他方式可以实现呢? 如果是用j2me的话可以写完全自定义的请求报文,然后把报文转换为byte[]进行write。如: 对IP,端口进行连接之后操作DataOutputStream.write(str.getBytes());但是常规java该怎么做呢?
那我就想用java代码去写,能实现吗?
我是C#转过来的,java才用了几天,不熟悉。
但请求的方法名字只是一个字面含义的东西,和协议本身并没有关系。 用C#的话,是不限定你使用什么样的字符串作为RequestMethod的。
例子代码:HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
myRequest.Method = "SNET";
myRequest.ContentType="application/octet-stream";
myRequest.ContentLength = data.Length;
myRequest.KeepAlive = true;
System.IO.Stream newStream=myRequest.GetRequestStream();
newStream.Write(data,0,data.Length); //向发送缓冲区写入字节流
newStream.Close();
感谢参与。