针对如何使HttpClient不遵循重定向的问题给出了在创建实际客户端时设置的解决方案:
var handler = new HttpClientHandler { AllowAutoRedirect = false };
var client = new HttpClient(handler);
下面的回答是我的实际问题:
可以在每个请求的基础上执行而不需要两个单独的HttpClient实例(即一个允许重定向的实例,另一个不允许重定向实例)?
我现在也有一个特定的理由想要独立的客户端:我希望客户端保留早期请求中的cookie。我试图先做几个请求,包括有效的重定向,但只是链中的最后
我正在使用HttpClient与API对话。如果启用,服务器将自动将http://请求重定向到https://。因此,为了保护用户API密钥,我希望在发送API密钥之前创建一个到网站的测试连接,以查看是否被重定向。
HttpClient重定向是正确的,但我似乎找不到一种合适的方法来确定客户机是否正在使用HTTPS。我知道我可以测试https://是否存在于response.RequestMessage.RequestUri中,但这似乎有点古怪。
public void DetectTransportMethod()
{
using (HttpClient client = new Ht
我构建了一个类,它使用HttpClient实例下载页面的内容。这是很好的工作,但我并不是真的满意我的实现重定向。
实际上,我手动处理重定向,如您所见:
/// <summary>
/// Web request handler
/// </summary>
public class NetworkHelper
{
/// <summary>
/// Store the url.
/// </summary>
private static Uri _storedUrl = null;
/// <sum
我们正在编写一个J2EE,它作为浏览器客户端和另一个服务器之间的代理。我们在servlet中使用httpClient4.1代码,充当浏览器请求和其他服务器调用之间的代理。这里是问题的主要部分,httpClient4.1将返回下一组请求中使用的cookie,但是它不会返回cookie,因为它们完全是从服务器返回的。是否可以从httpclient中的服务器获取“真正的”“set-cookie”头信息。
例如(这里是将在servlet级别设置的代码的伪代码):
DefaultHttpClient httpClient = new DefaultHttpClient();
// Connect to
我正在尝试创建一个Windows 8.1应用程序,它使用POST请求登录到网站(使用Windows.Web.Http),然后继续到另一个页面。当然,里面有更多的代码,但我不认为它与这个讨论有什么关系。
HttpClient httpClient = new HttpClient();
...
HttpResponseMessage myHttpPostResponse = await httpClient.PostAsync(myUri,postContent);
我无法克服的挑战是在收到响应之前抛出异常。这是我在即时窗口得到的信息:
A first chance exception of t
我需要检测到什么时候有重定向。我的第一个想法是检查301的状态代码,但是对于:
var link = "https://grnh.se/8dc368b82us?s=LinkedIn&source=LinkedIn";
var responseMessage = await httpClient.GetAsync(link);
responseMessage返回"OK“,但在浏览器中,此链接返回301并重定向。
因此,如果我不能依赖这个,那么我决定将请求URI与响应URI进行比较。
GetAsync返回一个Task<HttpResponseMess
我需要遵循HTTPost给我的重定向。当我创建一个HTTPost,并尝试读取响应时,我得到了重定向的页面html。我该如何解决这个问题呢?代码:
public void parseDoc() {
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, true);
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(