0

使用Web-Harvest 库创建的应用程序测试一些问题无济于事。我们的网络环境混合了代理和其他过滤器,我试图排除有问题的用户代理字符串。

我认为问题在于如何在应用程序中指定字符串,但我不知道如何输出提供的字符串以进行调试。

我可以在 IDE 调试器中看到该字符串,但我确实需要这个输出以供其他人在服务器上进行测试。

4

1 回答 1

0

您可以通过在执行后查询 http 对象来输出标头(以及有关 http 处理器的其他信息)。下面是将标头信息保存到 webharvest 变量中的示例代码

<config>
    <http url="${yoururl}"></http>

    <script><![CDATA[
            String keys="";
            for(int i=0;i<http.headers.length;i++) {
                keys+=(http.headers[i].key + "=" + http.headers[i].value +"\n---\n");
            }
            SetContextVar("myCookie", keys);
        ]]>
     </script>


</config>

myCookie 变量然后返回如下内容:

Server=Apache
---
Content-Language=en-GB
---
Pragma=no-cache
---
Cache-Control=no-cache,no-store,must-revalidate
---
Expires=0
---
Content-Type=text/html;charset=UTF-8
---
Date=Thu, 17 Jul 2014 14:35:41 GMT
---
Transfer-Encoding=chunked
---
Connection=keep-alive
---
Connection=Transfer-Encoding
---
Set-Cookie=Unique=%1%enc%3~~~ Domain=~~~; Path=/; Expires=Sat, 16 Jul 2016 14:35:40 GMT; HttpOnly
---
Set-Cookie=Session=%1%V2ID~~~
---
Set-Cookie=ServerPool=A; Domain=~~~
---
Set-Cookie=005db%3Bhac01a%3A10023%3B;
---
Set-Cookie=ReturnTo=%1%%2F~~~
---
于 2014-07-17T14:43:39.040 回答