gpt4 book ai didi

java - android中的IP回退

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:10 24 4
gpt4 key购买 nike

我正在访问服务器以进行 Web 服务调用。当我在与服务器相同的网络上开发时,我可以通过其内部 IP 地址而不是其外部 IP 地址访问 Web 服务。但是,如果我不在网络上,我只能通过它的外部 IP 地址访问它。尝试其中一个 IP 地址然后回退到另一个的最佳方法是什么?

这是我的代码示例,用于仅访问一个或另一个:

protected String retrieve() {
Log.v(TAG, "retrieving data from url: " + getURL());

HttpPost request = new HttpPost(getURL());
try {
StringEntity body = new StringEntity(getBody());
body.setContentType(APPLICATION_XML_CONTENT_TYPE);
request.setEntity(body);

HttpConnectionParams.setConnectionTimeout(client.getParams(), CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(client.getParams(), SOCKET_TIMEOUT);

HttpResponse response = client.execute(request);
final int statusCode = response.getStatusLine().getStatusCode();


if (statusCode != HttpStatus.SC_OK) {
Log.e(TAG, "the URL " + getURL() + " returned the status code: " + statusCode + ".");
return null;
}

HttpEntity getResponseEntity = response.getEntity();

if (getResponseEntity != null) {
return EntityUtils.toString(getResponseEntity);
}
} catch (IOException e) {
Log.e(TAG, "error retrieving data.", e);
request.abort();
}

return null;
}

/*
* @return the URL which should be called.
*/
protected String getURL() {
return INTERNAL_SERVER_URL + WEB_APP_PATH;
}

最佳答案

查看您的 android 的自己的 IP 地址。你可以像stated here一样得到它.

然后你可以决定:

  • 如果您在办公室的子网中(例如 192.168.0.0/16)- 使用内部地址
  • 如果您在其他子网中 - 使用外部地址

关于java - android中的IP回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com