我在使用给定代码的java中使用GET REST调用,但是我收到错误代码:404即Not Found。但是当我在浏览器中使用相同的URL时,我得到了输出,它工作正常。我是JAVA的新手。 可能是我错误地传递了查询参数,但我没有得到它。 我在NETBEANS 7.1.2工作。请帮忙。
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class Test {
private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode?";
public static void main(String[] args) throws IOException
{
URL url = new URL(ENDPOINT + "key=" + "mykey" );
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("GET");
OutputStreamWriter out = new OutputStreamWriter( httpCon.getOutputStream());
System.out.println(httpCon.getResponseCode());
System.out.println(httpCon.getResponseMessage());
out.close();
}
}
这里mykey是网站给我的关键。
我还想在输出窗口或控制台上打印响应消息。因为我想将它存储在将来进行一些提取。 请帮助。
答案 0 :(得分:6)
这是您的代码..使用它。它给我401-Unauthorised
的响应和浏览器URL的相同响应,这可能导致VPN出现其他一些问题。如果您使用
private static String ENDPOINT ="http://google.com";
它会给你200-OK
。
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class Test {
private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode";
public static void main(String[] args) throws IOException
{
String url = ENDPOINT;
String charset = "UTF-8";
String param1 = "mykey";
String query = String.format("key=%s",
URLEncoder.encode(param1, charset));
java.net.URLConnection connection = new URL(url + "?" + query).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
if ( connection instanceof HttpURLConnection)
{
HttpURLConnection httpConnection = (HttpURLConnection) connection;
System.out.println(httpConnection.getResponseCode());
System.out.println(httpConnection.getResponseMessage());
}
else
{
System.err.println ("error!");
}
}
}