none
在HttpClient发送POST后如何自定义处理重定向问题?

    问题

  • 情况是这样的,我需要使用http的方式去访问HDFS,在发送一个POST请求后这个HDFS给我返回了一个307重定向,我需要向这个重定向的地址传递某些参数。

    可现实情况是我无法捕获到这个重定向,HttpClient自动给我重定向了,但是我所需要加的参数却无法加入到这个重定向的地址中。我要怎样去处理这样的情况呢。有没有自定义的处理方式呢?使他不要给我自动的重定向了。谢谢大家。如果有什么方法或者其他的类也可以告诉我。再次谢谢。

    2016年8月3日 18:46

答案

  • 感谢大家的回复,可能是我没有把问题描述清楚,后来在别人的帮助下解决了问题。

     HttpMessageHandler handler = new HttpClientHandler() { AllowAutoRedirect = false };

        HttpClient client = newHttpClient(handler);

    HttpClientHandler类的 AllowAutoRedirect 属性设置为false就不会自动重定向了,这样就可以处理http的3XX状态了。

    • 已标记为答案 MetalMax 2016年8月4日 5:44
    2016年8月4日 5:44

全部回复

  • "捕获到这个重定向",可以考虑用软件HTTPDebugger.Pro,捕获client与server的交互信息

    "不要给我自动的重定向",这个是由服务器设置的,客户端难以实现修改此行为。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月4日 0:16
  • MetalMax:

    是否可以尝试获取location属性中的值?那就是重定向地址?

    参考:http://www.pocketdigi.com/20111026/553.html


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2016年8月4日 0:53
    版主
  • 感谢大家的回复,可能是我没有把问题描述清楚,后来在别人的帮助下解决了问题。

     HttpMessageHandler handler = new HttpClientHandler() { AllowAutoRedirect = false };

        HttpClient client = newHttpClient(handler);

    HttpClientHandler类的 AllowAutoRedirect 属性设置为false就不会自动重定向了,这样就可以处理http的3XX状态了。

    • 已标记为答案 MetalMax 2016年8月4日 5:44
    2016年8月4日 5:44