【问题标题】:Specifying space character in Youtube HTTP request在 Youtube HTTP 请求中指定空格字符
【发布时间】:2016-03-03 01:51:40
【问题描述】:

这是我向 Youtube 发出 HTTP 数据请求的代码:

 String apiKey =MY_KEY;
//variable input contains search keyword
    String query = "";
    if(input.contains(" "))
        query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+input.replace(" ","+")+"&type=video&videoCaption=closedCaption&key="+apiKey;
    else
        query = "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+input+"&type=video&videoCaption=closedCaption&key="+apiKey;
    try {
        response = makeHTTPRequest.sendGet(query);
    }
    catch (Exception e){
        e.printStackTrace();
    }

    System.out.println("Youtube results : "+response);

所以我试图用 + 符号替换 Electronics City 等关键字中的空格字符。这是错的吗?应该进行哪些更改才能仅获得 electronics city 而不仅仅是 electronicscity 的搜索结果?

目前我正在获取电子城的搜索结果,电子产品也是如此。

【问题讨论】:

    标签: java http youtube youtube-data-api


    【解决方案1】:

    您需要url encode 某些字符。幸运的是,有URLEncoder,您可以通过执行类似的操作来使用它,

    try {
        String query = String.format("https://www.googleapis.com/" //
                    + "youtube/v3/search?part=snippet&q=%s&type=video&" //
                    + "videoCaption=closedCaption&key=%s", URLEncoder.encode( //
                input, "UTF-8"), URLEncoder.encode(apiKey, "UTF-8"));
        response = makeHTTPRequest.sendGet(query);
        System.out.printf("Youtube results : %s%n", response);
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-27
      • 2018-09-19
      • 2015-02-02
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      相关资源
      最近更新 更多