我编写了一个调用日语字典API的java方法 - >解析JSON响应 - >将第一个节点(String)作为英语单词的适当翻译返回给调用者。 从Eclipse IDE执行时,程序运行得非常好。 但是,当我运行它的可执行jar(使用Eclipse的导出功能创建)时 我没有得到API的回复。 我无法理解这种行为的原因,如果有人引导我这一点,我会非常有帮助。
当我执行整个程序时,我总是得到" GET请求无效" 打印在控制台上
java -jar JtoETranslate.jar
Java方法:
public static String sendGET(String param) throws IOException
{
BufferedWriter writer = null;
Properties systemSettings = System.getProperties();
systemSettings.put("proxySet", "true");
systemSettings.put("http.proxyHost","172.29.44.61");
systemSettings.put("http.proxyPort", "8080");
URL obj = new URL(GET_URL+param);
HttpURLConnection con = (HttpURLConnection)obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
{
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// print result
try
{
writer = new BufferedWriter( new FileWriter("./docs/response.json"));
writer.write(response.toString());
}
catch ( IOException e)
{
}
finally
{
try
{
if ( writer != null)
writer.close( );
return parseJSON("./docs/response.json");
}
catch ( IOException e)
{
}
}
System.out.println("Got response");
} else {
System.out.println("GET request not worked");
}return null;
}
修改
正如下面的评论之一所示,我添加了一个调试语句,以确切了解正在形成的请求,这是对API的请求。
任何人都可以帮助我,让我如何让Jar理解UTF-8编码。