JavaGithubHTTPS/SSL请求给出404响应

JavaGithubHTTPS/SSL请求给出404响应,java,ssl,https,github-api,Java,Ssl,Https,Github Api,我正在为Java开发一个小型REST客户机,并在测试时使用GitHub的API。 我似乎不知道我做错了什么,下面是发出https请求的代码 链接至回购协议: 当我运行这段代码时,我从最后一行得到一个FileNotFound,System.out.printlnServer响应whi。。。。打印服务器响应的404未找到 System.out.printlsending+方法。。。。打印出其请求的url。我已经将它复制粘贴到我的浏览器中,然后它就可以正常工作了。我是在做一些错误的假设吗?有什么我忘了

我正在为Java开发一个小型REST客户机,并在测试时使用GitHub的API。 我似乎不知道我做错了什么,下面是发出https请求的代码

链接至回购协议:

当我运行这段代码时,我从最后一行得到一个FileNotFound,System.out.printlnServer响应whi。。。。打印服务器响应的404未找到

System.out.printlsending+方法。。。。打印出其请求的url。我已经将它复制粘贴到我的浏览器中,然后它就可以正常工作了。我是在做一些错误的假设吗?有什么我忘了的吗

我要发一封信

我还尝试删除if protocol==protocol.HTTPS条件,并使其始终为HttpsURLConnection,而不是强制转换它。这也没用,我仍然收到一个404,上面有同样的信息

我测试的URL(如果相关)是:
api.github.com/repos/sigurdsvela/lovelets

您是在请求GET还是POST?了解完整的URL、方法、参数以及您向API发出的请求中涉及的所有其他内容会很有帮助。此外,协议应始终为https,因为整个API都是在该协议上提供服务的。在这种情况下,你的条件句是错误的。如果协议不是https,则应该引发异常。@IvanZuzak我正在发出GET请求。@sigmavirus24我已尝试删除该条件并使其生效,以便始终发送https请求,但这也不起作用。由于您发出GET请求,内容长度,内容类型和内容语言标题毫无意义,可能会导致问题。您可以尝试删除这些头并重试请求吗?
HttpURLConnection connection = (HttpURLConnection)ourl.openConnection();

if (protocol == Protocol.HTTPS) { //protocol is Protocol.HTTPS
   SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
   ((HttpsURLConnection) connection).setSSLSocketFactory(sslsocketfactory);
}

System.out.println("Sending " + method + " request to " + ourl + "?" + urlParameters);
connection.setRequestMethod(method.getName());
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.toString().getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");  

connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);

//Send request
DataOutputStream wr = new DataOutputStream( connection.getOutputStream() );
wr.writeBytes(urlParameters.toString());
wr.flush();
wr.close();

System.out.println("Server responded with " + connection.getResponseCode() + " " + connection.getResponseMessage());

//Get Response  
InputStream is = connection.getInputStream();