用Java-Yahoo实现HTTP请求

用Java-Yahoo实现HTTP请求,java,http,httprequest,yahoo,Java,Http,Httprequest,Yahoo,我在以下地点做了一项研究: 我发现2008年Yahoo在java编程的http方法上做了一个改变,即对单词“伞”做了一个改变: “字符串请求=”“;” 关于: HttpClient client = new HttpClient(); GetMethod method = new GetMethod(request); // Send GET request int statusCode = client.executeMethod

我在以下地点做了一项研究:

  • 我发现2008年Yahoo在java编程的http方法上做了一个改变,即对单词“伞”做了一个改变:

    “字符串请求=”“;”

    关于:

    HttpClient client = new HttpClient();
    
            GetMethod method = new GetMethod(request);
    
    
            // Send GET request
    
            int statusCode = client.executeMethod(method);
    
    等等..现在他们有了BOSS搜索API,但直到现在我还没有找到关于:

    “如何在雅虎搜索引擎中从java发送HTTP请求?”

    ps:请记住,yahoo进行了某种加密搜索,而urlencoder.encode(查询)之类的东西是行不通的

    有人有什么要告诉我的吗?提前感谢!=]

    编辑一:在yahoo developer找到这个“”,我正试图回答我自己的问题

    编辑一个:

    try {
    
    
        WebSearch ws = new WebSearch();
    
        ws.search(userQuery);
    
        List<WebSearchResult> results = ws.getResults();
    
        for(WebSearchResult result : results){
             System.out.println(result.getTitle());
        }
    
        // Setup connection properties (this doesn't open the connection)
        URLConnection connection = url.openConnection();
        connection.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1)");
    
        //Setup a reader
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    
        //Read line by line
        String line = null;
        while ((line = reader.readLine()) != null) {
        System.out.println (line);
        }
        //Close connection
        reader.close();
    }
    
    查看来自javaboss API的这段代码-我对其进行了更改以设置读取器-值来自uc.getResponseCode();是零。它位于“主”类名bosssearch中。这意味着if始终不同于200,返回值始终为零……我认为这可能会使代码崩溃,但现在我需要将java文件导出为jar来替换它,因为它来自项目外部,我对它有一些问题,您认为如何?

    您可以使用它来执行对Yahoo!的搜索!搜索引擎:

    WebSearch ws = new WebSearch();
    
    ws.search("your_search_keywords_here");
    
    System.out.println("Total hits : " + ws.getTotalResults());
    
    //get a list of results
    List<WebSearchResult> results = ws.getResults();
    
    //iterate over the list and print every result title
    for(WebSearchResult result : results){
         System.out.println(result.getTitle());
    }
    
    WebSearch ws=newwebsearch();
    ws.search(“您的搜索关键字”在这里);
    System.out.println(“总点击次数:+ws.getTotalResults());
    //获取结果列表
    List results=ws.getResults();
    //迭代列表并打印每个结果标题
    对于(WebSearchResult结果:结果){
    System.out.println(result.getTitle());
    }
    

    但是,您应该将用户代理设置为在不出现403错误的情况下发出这种类型的请求,

    我无法理解这一点。你想在yahoo search上搜索一个术语吗?@反斜杠是的,但在一个java应用程序中工作-使用普通方法的结果返回错误403或401-未经授权的访问仍然可以解决问题。我开始使用从提供的代码-通过此代码和网站上请求的导入,我发现了另一个可以解决的错误,从该网站下载编解码器并将其添加到项目的构建路径。现在,我的程序正在返回来自雅虎的身份验证,这意味着它至少正在访问http请求-一旦我完成搜索请求,我将在这里发布整个解决方案。请尝试,给我几分钟时间。他们反斜杠,我在谷歌引擎中的搜索现在运行良好,但我仍然需要在Yahoo中运行一些测试——这段代码正在编译,但还不能完全正常工作,我需要进行更多研究,看看哪里出了问题,然后再请求更多帮助(如果需要);我不想让我这么懒..但是我非常愿意,我会尽快回来看看这个答案是否适合标记为正确,并转发给我的案例;)泰@VictorOliveira尝试设置用户代理,就像我在你的google问题中所做的那样,它应该可以工作,并且你不必使用JavaBoss,直到尝试解决,检查编辑一个。我试图检查javaboss代码,在异常中我没有发现任何可以解释为什么会发生这种情况的东西-代码和参数都很好,这不像是一个语法或词法问题-我认为缺少了一些东西..我在这里意识到IOException来自HTTP错误500-websearch javaboss代码中的异常103行..这是一个没有特定诊断的一般性错误=/真令人头痛
    WebSearch ws = new WebSearch();
    
    ws.search("your_search_keywords_here");
    
    System.out.println("Total hits : " + ws.getTotalResults());
    
    //get a list of results
    List<WebSearchResult> results = ws.getResults();
    
    //iterate over the list and print every result title
    for(WebSearchResult result : results){
         System.out.println(result.getTitle());
    }