Articles of android networking

Retrofit 2.x:请求和响应的日志标头

我正在使用改造2.x,我想记录请求和响应的标题和正文。 HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR) .addNetworkInterceptor(new Interceptor() { @Override public okhttp3.Response intercept(Chain chain) throws IOException { Request request = chain.request().newBuilder() .addHeader(“key”, “value”) .addHeader(“HEADER”,”HEADER Value”) .build(); return chain.proceed(request); } }).build(); 这就是我正在做的,我的问题是请求的标题没有记录在Android监视器,但rest一切都记录下来。 Gradle版本 compile (‘com.squareup.retrofit2:retrofit:2.0.0-beta3’) { // exclude Retrofit’s OkHttp peer-dependency module and define your own module import […]

使用volley库在android中进行Http身份validation

如何使用Volley库为API进行Http身份validation ? 我尝试了以下代码….它抛出运行时exception和空指针exception..请提供建议 String url = “Site url”; String host = “hostName”; int port = 80; String userName = “username”; String password = “Password”; DefaultHttpClient client = new DefaultHttpClient(); AuthScope authscope = new AuthScope(host, port); Credentials credentials = new UsernamePasswordCredentials(userName, password); client.getCredentialsProvider().setCredentials(authscope, credentials); HttpClientStack stack = new HttpClientStack(client); RequestQueue queue = Volley.newRequestQueue(VolleyActivity.this, stack);

服务器在Android中发送事件

我有一个后端服务器,它将事件作为服务器发送事件发送给客户端。 我无法在Android上find一个好的库来处理这项技术,所以我一直在使用一种回退方法来定期检查服务器(通过GET到事件端点)以获取新事件。 这是通过后台服务每10秒完成的。 不用说,这不是最好的方法。 如果没有任何开源库可用于此方案,那么在内存使用和电池消耗方面,定期检查服务器后端是否有新事件的最佳方法是什么? 是否比在Android中管理开放套接字更好或更差地对API端点进行GET? 我愿意接受任何建议。 谢谢。

星巴克在附近商店时如何在Android设备上显示用户界面?

我是一个相当新的Android开发人员。 我注意到的一件事是,当我走近/星巴克店内时,我的Android设备显示以下内容: 题: 当我在商店附近/内部时,这个UI如何自动呈现在我的移动设备上? 此UI是否显示是因为我的手机上安装了星巴克应用程序? 该应用程序是否使用网络广播监听器? 例如:如果在该区域检测到“Google Starbucks”Wi-Fi,该应用程序是否会将UI显示为活动? 或者,星巴克路由器是否向移动设备广播特殊网络数据包以强制移动设备呈现此信息? 如果是这样,这个网络数据包里面有什么? 我也想这样做。

在Android中手动启动3G连接,并保持开启状态

在启用WiFi的同时,如何在Android中启动3G数据连接? 我试过了 IConnectivityManager.setMobileDataEnabled(enabled); // via reflection 它在模拟器中工作,但在我的真实手机(Droid 2)中,它会短暂打开然后再次关闭。 从shell(adb shell), ip link提供3G连接的详细信息: 15: ppp0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 3 link/ppp 但是,它仅在WiFi关闭时可用。 当WiFi打开并且我尝试手动打开它时,它会抱怨ppp0设备不存在。 bash-3.2# ip link set ppp0 up ip link set ppp0 up Cannot find device “ppp0” 当我尝试列出设备时,我甚至找不到它 bash-3.2# ls /dev/ppp* ls /dev/ppp* /dev/ppp

Android DNS需要热身吗?

从Android java.net.UnknownHostException之类的旧post:Host未解析(策略问题) ,它建议使用以下代码: try { InetAddress i = InetAddress.getByName(URLName); } catch (UnknownHostException e1) { e1.printStackTrace(); } 这是否意味着当DNS条目没有被缓存在设备中时,例如在启动之后,它将返回java.net.UnknownHostException: Host第一次,即使对于有效的DNS?

需要有关Android Emulator Networking的帮助

这是cmd行 “C:\Progra~2\Android\android-sdk\tools\emulator.exe” -avd Touch -netspeed full -netdelay none -http-proxy localhost:3128 -debug-proxy 当我尝试从模拟器打开google.com时,这里是控制台: server name ‘localhost’ resolved to 127.0.0.1:3128 proxy_http_setup: creating http proxy service connecting to: localhost:3128 server name ‘localhost’ resolved to 127.0.0.1:3128 proxy_http_setup: creating HTTP Proxy Service Footer is (len=2): ‘ ‘ http_service_connect: trying to connect to (null) http_service_connect: using HTTP rewriter tcp:(null)(880): connecting tcp:(null)(880): […]

基于接收广播意图启动网络通信的正确方法是什么?

我开始使用谷歌的C2DM了。 此过程的一部分涉及在注册发生时接收广播意图。 在Google的官方C2DM文档中 ,示例代码在BrodcastReceiver的onReceive()方法中显示以下注释: // Send the registration ID to the 3rd party site that is sending the messages. // This should be done in a separate thread. 但是,我读过的所有内容,包括BroadcastReceiver的文档 ,都表明从onReceive()启动一个线程几乎肯定会导致问题,因为只要onReceive()返回,该过程很可能很快被杀死。 有人可能犯了一个错误,我应该忽略关于使用单独线程的评论,但我猜他们说这是有原因的,即使它有误导性。 有没有理由在返回之前不能或不应该使用与onReceive()相同的线程中的网络? 如果这样做有问题,即使在C2DM之外,处理必须是常见情况的正确方法是什么? 开始服务?

如何下载包含斯洛文尼亚特殊字符的String文件

我正在尝试下载包含斯洛文尼亚字符的json文件,在下载json文件作为字符串时,我将获得json数据中指定的特殊字符 “send_mail”: “Po lji elektronsko sporocilo.”, “str_comments_likes”: “Komentarji, v ecki in mejniki”, 我正在使用的代码 URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); try { InputStream input1 = new BufferedInputStream(url.openStream(), 300); String myData = “”; BufferedReader r = new BufferedReader(new InputStreamReader(input1)); StringBuilder totalValue = new StringBuilder(); String line; while ((line = r.readLine()) != null) { […]

Android,如何在轮询数据时处理网络变化(从GPRS到Wi-fi,反之亦然)

我使用DefaultHttpClient和HttpGet来从服务器轮询数据。 现在,假设用户在Wi-Fi网络中并离开了房间。 因此手机会自动开始使用3G网络。 是否存在此类更改的回调,以及如何处理此类更改。 我应该再次开始轮询还是操作系统会注意适当地进行更改