我们使用GSLB进行地理分布和负载平衡.为每项服务分配一个固定的域名.通过一些DNS魔术,域名被解析为最接近服务器且负载最小的IP.为了使负载平衡起作用,应用程序服务器需要遵守DNS响应中的TTL,并在缓存超时时再次解析域名.但是,我无法想出用Java做到这一点的方法.
该应用程序使用Java 5,在Linux(Centos 5)上运行.
我已在清单文件中获得互联网许可。我的移动网络连接也正在工作。
/**
* 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) 我正在尝试使用 Retrofit 2 使我的应用程序连接到本地 Web 服务,但我总是收到此错误。我确定 Web 服务正在响应,因为我在 firefox 中使用了一个工具来发出 @GET 请求并且返回正常,返回正确的 JSON。
在android中它甚至没有连接。
这是我的主要活动:
public class MainActivity extends AppCompatActivity {
private String API_BASE_URL="http://192.168.1.32:8080/economarket-restService/resources/androidTest/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.client(
httpClient.build()
).build();
ContatoService contato = retrofit.create(ContatoService.class);
Call<Contato> repos = contato.listRespos(); //EconomarketService
repos.enqueue(new Callback<Contato>() {
@Override
public void onResponse(Call<Contato> call, Response<Contato> response) {
Contato contato = response.body();
Toast.makeText(getBaseContext(), "Return" + contato.getName(), Toast.LENGTH_LONG).show();
Log.d("Retorno",response.toString()); …Run Code Online (Sandbox Code Playgroud) 我正在尝试连接到这些地方之一并获取JSON数据:-
https://content.guardianapis.com/search?q=debate&tag=politics/politics&from-date=2014-01-01&api-key=test
https://content.guardianapis.com/search?q=debates&api-key=test
https://content.guardianapis.com/search?api-key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我可以通过浏览器访问所有这三个,但是当我尝试通过Android应用访问它们时,出现以下错误:
NetworkSecurityConfig: No Network Security Config specified, using platform default
Error response code: 400
Run Code Online (Sandbox Code Playgroud)
我已将此添加到manifest.xml:-
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
我还将此添加到manifest.xml:
android:networkSecurityConfig="@xml/network_security_config"
Run Code Online (Sandbox Code Playgroud)
并创建了res / xml / network_security_config.xml,其中包含:-
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">content.guardianapis.com</domain>>
</domain-config>
Run Code Online (Sandbox Code Playgroud)
将错误更改为:
D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
Error response code: 400
Run Code Online (Sandbox Code Playgroud)
我知道它不见了:
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
Run Code Online (Sandbox Code Playgroud)
但我不知道证书在哪里或在什么地方,是否需要它。
不太确定发生了什么,将不胜感激。
另外:-我可以很好地连接并从此URL获取JSON:-
https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&eventtype=earthquake&orderby=time&minmag=6&limit=10
Run Code Online (Sandbox Code Playgroud)
我所得到的是:
No Network Security Config specified, using platform default
Run Code Online (Sandbox Code Playgroud)
购买不是错误400,而是获得200。因此,这让我觉得有些奇怪的事情正在发生,但不确定在哪里。