如何使用该POST
方法发出HTTP请求并发送一些数据?我可以做GET
请求,但不知道如何制作POST
.
在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer?
WebRequest
由于此错误消息,我们无法连接到HTTPS服务器:
The request was aborted: Could not create SSL/TLS secure channel.
我们知道服务器没有使用路径的有效HTTPS证书,但是为了绕过这个问题,我们使用以下代码,我们从另一个StackOverflow帖子中获取:
private void Somewhere() {
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AlwaysGoodCertificate);
}
private static bool AlwaysGoodCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
问题是服务器永远不会验证证书并因上述错误而失败.有谁知道我该怎么办?
我应该提到一位同事和我几周前进行了测试,并且它与我上面写的内容类似.我们发现的唯一"主要差异"是我使用的是Windows 7并且他使用的是Windows XP.这有什么改变吗?
我到处搜索但我找不到答案,有没有办法发出简单的HTTP请求?我想在我的某个网站上请求PHP页面/脚本,但我不想显示该网页.
如果可能的话我甚至想在后台(在BroadcastReceiver中)这样做
是否有任何类,库或一些代码可以帮助我使用HTTPWebrequest上传文件?
编辑2:
我不想上传到WebDAV文件夹或类似的东西.我想模拟浏览器,就像您将头像上传到论坛或通过Web应用程序中的表单上传文件一样.上传到使用multipart/form-data的表单.
编辑:
WebClient不能满足我的要求,所以我正在寻找HTTPWebrequest的解决方案.
我试图HttpWebResponse
从一个返回的对象中获取HTTP状态代码HttpWebRequest
.我希望得到实际数字(200,301,302,404等)而不是文字说明.("Ok","MovedPermanently"等)数字是否隐藏在响应对象中的某个属性中?除了创建一个大开关功能之外的任何想法?谢谢.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest
.Create("http://www.gooogle.com/");
webRequest.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
//Returns "MovedPermanently", not 301 which is what I want.
Console.Write(response.StatusCode.ToString());
Run Code Online (Sandbox Code Playgroud) 这是我正在使用的代码:
// create a request
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(url); request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
// turn our request string into a byte stream
byte[] postBytes = Encoding.UTF8.GetBytes(json);
// this is important - make sure you specify type this way
request.ContentType = "application/json; charset=UTF-8";
request.Accept = "application/json";
request.ContentLength = postBytes.Length;
request.CookieContainer = Cookies;
request.UserAgent = currentUserAgent;
Stream requestStream = request.GetRequestStream();
// now send it
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
// grab te response and print it out …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个Java类来登录某个网站.POST请求中发送的数据是登录的
user%5Blogin%5D=username&user%5Bpassword%5D=123456
我很好奇关键用户登录的含义%5B
和%5D
含义.
我如何编码这些数据?
我遇到的情况是,当我从服务器获取HTTP 400代码时,服务器告诉我我的请求有什么问题(使用HTTP响应内容中的消息)是完全合法的方式
但是,当状态代码为400时,.NET HttpWebRequest会引发异常.
我该如何处理?对我来说,400是完全合法的,而且非常有帮助.HTTP内容有一些重要的信息,但异常使我离开了我的道路.
我正在使用谷歌的"Page Speed"插件来访问我的网站.
我页面上的一些组件表示为HTTP状态:
200 200(缓存)304
通过谷歌的"页面速度".
我困惑的是200(缓存)和304之间的区别.
我已多次刷新页面(但尚未清除我的缓存),似乎我的favicon.ico和一些图像状态= 200(缓存),而其他一些图像是http状态304.
我不明白为什么不同.
更新:
使用Google"Page Speed",我收到了http://example.com/favicon.ico的"200(缓存)" 以及http://cdn.example.com/js/ga.js
但是,我收到http://cdn.example.com/js/combined.min.js的http状态"304"
我不明白为什么我有两个JavaScript文件位于同一目录/ js /中,一个返回http状态304,另一个返回200(缓存)状态代码.