在命令行中
> ftp ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/
Run Code Online (Sandbox Code Playgroud)
在一台计算机上工作但在另一台计算机上不起作用.错误返回
ftp:ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/:名称或服务未知
我也尝试过原始IP地址
> ftp ftp://130.14.250.10/1000genomes/ftp/data/
Run Code Online (Sandbox Code Playgroud)
但它没有用.
这里有什么问题?我怎样才能解决这个问题?
我有一个Web服务调用来关闭一个JSON对象,它只有在我有IP地址而不是主机名时才有效.我使用IP地址很好,但现在我需要拥有主机名.
这是我的代码
StringBuilder stringBuilder = new StringBuilder();
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
HttpConnectionParams.setSoTimeout(httpParams, 7000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
HttpPost httpost = new HttpPost(URL);
try {
HashMap<String,String> params = new HashMap<String,String>();
// Login info
params.put("username", edtUserName.getText().toString());
params.put("password", edtPass.getText().toString());
params.put("deviceOS", "Android");
params.put("deviceOSVersion", android.os.Build.VERSION.RELEASE);
params.put("language", "0");
//JSON object holding the login info
JSONObject holder = new JSONObject(params);
StringEntity se = new StringEntity(holder.toString());
httpost.setEntity(se);
httpost.setHeader("Content-Type", "application/json");
//Executing the call
HttpResponse response = httpClient.execute(httpost);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从服务器中获取数据。有时我的代码由于导致失败UnknownHostException
。这是为什么?这个问题是什么原因造成的?
UnknownHostException
如果服务器关闭或没有互联网连接,则会抛出异常。我如何确定抛出的错误是否是UnknownHostException
因为服务器关闭或没有互联网连接?
这样做的原因是我需要通知用户错误的原因。我必须显示类似“抱歉。该服务当前不可用。请稍后重试”或“您没有互联网连接”的内容。
在我的 Jboss 服务器上运行的应用程序中,我们与另一个应用程序建立 http 连接。这两个应用程序都位于同一数据中心。我们使用 VIP 来连接到应用程序。这在生产中工作得很好,除了当我们得到“java.net.UnknownHostException”时的很小一部分。这个百分比非常低(~0.2%),但考虑到我们收到的请求量巨大,实际数量不容忽视。
该错误是间歇性的,并且在时间和频率上都不遵循规律。有时我们一天会收到 200 次,有时我们会连续 3-4 天都没有收到。有时我们甚至会在预期流量较低时(夜间 1-3 点)得到它。
AFAIK,当 DNS 无法解析给定主机名的 IP 时,就会出现这种特殊的异常。我们检查了 DNS 设置/配置等,一切看起来都很好。不想直接在属性文件或 /etc/hosts 文件中使用 IP 地址。
此时,我不确定下一步可以做什么来进一步调试。此处的任何帮助/指导将不胜感激。
Caused by: java.net.UnknownHostException: <VIP Name>
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[?:1.6.0_25]
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850) ~[?:1.6.0_25]
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201) ~[?:1.6.0_25]
at java.net.InetAddress.getAllByName0(InetAddress.java:1154) ~[?:1.6.0_25]
at java.net.InetAddress.getAllByName(InetAddress.java:1084) ~[?:1.6.0_25]
at java.net.InetAddress.getAllByName(InetAddress.java:1020) ~[?:1.6.0_25]
at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:242) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:130) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) ~[httpclient-4.1.2.jar:4.1.2]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) ~[httpclient-4.1.2.jar:4.1.2]
at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:88) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:46) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE] …
Run Code Online (Sandbox Code Playgroud) 我正在使用GoogleUtilAuth.getToken()生成令牌.我还为网页生成了两个客户端ID,一个用于Android应用程序,两者都在同一个项目中.关注此链接
这是我的代码:
package com.example.tokengenerate;
import java.io.IOException;
import com.google.android.gms.auth.GoogleAuthException;
import com.google.android.gms.auth.GoogleAuthUtil;
import com.google.android.gms.auth.UserRecoverableAuthException;
import com.google.android.gms.common.Scopes;
import android.os.AsyncTask;
import android.os.Bundle;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
String scope="audience:server:client_id:CLIENTID OF WEBPAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv =(TextView)findViewById(R.id.printId);
new AsyncTask<Void, Void, Void>() {
String id=null;
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
tv.setText(id);
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) { …
Run Code Online (Sandbox Code Playgroud) 我已在清单文件中获得互联网许可。我的移动网络连接也正在工作。
/**
* Created by Yogesh on 5/07/2016.
*/
public class All_Item_Fragment extends android.support.v4.app.ListFragment {
// Declare Variables
JSONArray jsonarray = null;
ListView list;
ListViewAdapter adapter;
ArrayList<HashMap<String, String>> itemlist;
static String NAME = "name";
static String DESCRIPTION = "Description";
static String PRICE = "price";
static String IMAGE = "image_path";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.all_item_layout, container, false);
itemlist = new ArrayList<HashMap<String, String>>();
new ReadJSON().execute();
list = (ListView) view.findViewById(android.R.id.list);
return view;
}
private …
Run Code Online (Sandbox Code Playgroud) 使用我的代码(如下所示),我随机得到正确的结果。但大多数时候我都会出错。
例外:
java.net.UnknownHostException: api.api.ai: Temporary failure in name resolution
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
..<snip>...
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at PostJSON.main(PostJSON.java:34)
Run Code Online (Sandbox Code Playgroud)
SSCCE 代码:
private static final String URL = "https://api.api.ai/v1/query?v=20150910";
private static final String ACCESS_CODE = "XXXXXX";
public static final HttpClient client = HttpClientBuilder.create().build();
public static final HttpPost httppost = new HttpPost(URL);
private static final String str_json = "{ query: \"how are you\", lang: \"en\", sessionId: \"somerandomthing\" }";
public static void main(String[] args) {
try {
HttpEntity entity = new …
Run Code Online (Sandbox Code Playgroud) 我可以使用一些CLI工具来验证known_hosts的内容吗?也许尝试对其中的所有主机执行ping操作,看看是否可以连接到每个主机?
可能使用ssh-keygen
或ssh-keyscan
?
我正在尝试检测是否确实存在互联网连接并且网站可以访问.我有一个广播接收器,在接收时运行以下方法:
public boolean hasInternetNow() {
Thread checkinternet = new Thread(new Runnable() {
@Override
public void run() {
try {
try {
ConnectivityManager cm = (ConnectivityManager) myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo().isConnectedOrConnecting()) {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url .openConnection();
urlc.setRequestProperty("User-Agent", "test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
setinternetDetected(true);
} else {
setinternetDetected(false);
}
}
} catch (IOException e) {
e.printStackTrace();
setinternetDetected(false);
} catch (NullPointerException e){
e.printStackTrace();
setinternetDetected(false);
}
} catch (Exception …
Run Code Online (Sandbox Code Playgroud) unknown-host ×10
android ×5
java ×5
dns ×3
exception ×2
connectivity ×1
ftp ×1
google-oauth ×1
http ×1
inetaddress ×1
linux ×1
sftp ×1
ssh ×1
ssh-config ×1
ssh-keygen ×1