Articles of web services

连接到一个web服务从android – AsyncTask或服务?

我在写一个将连接到REST / JSON web服务的android应用程序。 用户将获取信息,上传评论,下载和上传图片等。 我知道我不应该在Activity / UI线程中保留所有这些networking通信,因为这会导致ANR。 我感到困惑的是,我是否应该使用“手动”线程来实现这个AsyncTask或服务; 有了服务,我只需要在web服务的API中为每个方法提供一个公共方法。 然后,我会在这些方法中实现线程化。 如果我使用了一个AsyncTask,我会创build一个帮助类,为webservice的API中的每个方法定义AsyncTasks。 哪种方法是首选? 与web服务的交互只会发生在用户在活动中。 一旦他们切换到另一个应用程序,或退出程序,就不需要与web服务进行通信。

无模式数据存储与模式数据存储的优点

我想为我的应用程序select一个后端Web服务。 阅读这些服务的文档(Parse,Proxomo,Cocoafish,StackMob等)显示,其中一些提供以无模式forms存储数据,而其他提到该模式必须先指定。 我明白数据的模式是什么,希望模式是易于使用,但要知道每个的优点和缺点。 任何解释将不胜感激。

Android的loopj asynchttpclient返回响应

在我的一个项目中,我使用loopj asynchttpclient与我的网站进行通信。 沟通部分运作良好,得到回应 我的活动看起来像 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); WebRequest test=new WebRequest(); test.callService(); } WebRequest类为 public class WebRequest extends Activity { public void callService(){ AsyncHttpClient client = new AsyncHttpClient(); client.post("http://domain.com/dp/index.php", new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { Log.v("P",response); } @Override public void onFailure(Throwable e, String response) { Log.v("PS",e.toString()); } }); } […]

聊天应用程序 – 哪种技术更适合在Android中实现聊天应用程序

* 我必须做一个基本上是聊天应用程序的Android应用程序。 *在这个聊天应用程序中,用户可以与单个用户进行交互,也可以在一个组中进行交互,这意味着群聊也在那里。 我使用PHP作为数据库的后端。 我从来没有做过这样的工作,所以需要一些build议或指导。 The options i have seen is as follow : 1. Web-services 2. Socket Programming 3. XMPP using the smack api 现在我很困惑,在Android中实现聊天function更好。 我也没有得到任何示例代码。 我的团队成员之一是要求我使用套接字编程,但我没有得到任何示例应用程序或任何插件编程在Android中。 这次我不知道套接字编程。 我们如何将手机连接到服务器,然后连接到其他设备。 希望你能得到我想要的Conway你。 所以,任何人都可以引导我,让我看到正确的方向继续前进。 另外,如果你可以提供我的任何示例代码,这可能是非常有帮助的。 任何帮助表示赞赏

Android KSoap2:如何获取属性名称

我正在使用KSoap2为我的Android应用程序调用Web服务。 我正在使用以下代码来调用Web服务。 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("PageSize", 20); request.addProperty("PageIndex", currentPage); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.setOutputSoapObject(request); HttpTransportSE aht = new HttpTransportSE(URL); try { aht.call(SOAP_ACTION, soapEnvelope); SoapObject result = (SoapObject) soapEnvelope.getResponse(); Log.d("resBundle", String.valueOf(resBundle)); int elementCount = resSoap.getPropertyCount(); for(int i = 0;i<elementCount;i++){ /////////////////////how to get the property name here//////////////// } }catch (Exception […]

在android的IP后备

我正在访问一个服务器的Web服务调用。 当我在服务器的同一networking上开发时,我可以通过其内部IP地址访问Web服务,但不能访问其外部IP地址。 但是,如果我不在networking上,我只能通过外部IP地址访问它。 尝试其中一个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() […]

Retofit2错误java.io.EOFException:行1列1的input结束

我使用Retrofit2调用了PATCH Web服务,但未调用onResponse并调用onFailure 尽pipe服务器的操作在服务器端完全成功 每当我试图使用提琴手检查服务的工作,我发现问题是序列化服务即将到来的响应和使用小提琴手时,我发现没有内容的JSON响应,所以改装服务假设其失败,因为没有内容,它不能序列化EMPTY内容,并给我这个错误 java.io.EOFException: End of input at line 1 column 1 小提琴原始的回应 HTTP/1.1 200 OK Server: nginx/1.9.4 Date: Wed, 02 Mar 2016 09:55:55 GMT Content-Type: application/json Content-Length: 0 Connection: close Status: 200 OK X-Content-Type-Options: nosniff 提琴手Json响应是空的 在java中的webservice Call<Object> call = TimeCapp.services.accept_invited_alerts(HomeActivity.api_token, alert_id); call.enqueue(new Callback<Object>() { @Override public void onResponse(Call<Object> call, Response<Object> response) { […]

Java Restful Web Service只运行Android 4.4 Mobile而不是其他

我构build了一个Java Restfull Web服务,由在Android Mobil设备上运行的离子应用程序调用。 该代码在Android 4.4 Mobile上成功运行。 但不能运行在任何其他的Android手机上:os: android lollipop, marshmallow 。 webservices web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>test</display-name> <servlet> <servlet-name>Jersey REST Service</servlet-name> <!– <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class> –> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>test</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> 其余的web服务代码 package test; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; […]

Bouncy Castle Keystore(BKS):java.io.IOException:密钥库的版本错误

我必须连接到基于REST的web服务。 ( https://someurl.com/api/lookup/jobfunction/lang/EN ) 在IE或者Chrome浏览器中,当我尝试访问这个URL时,我得到一个我必须信任并接受的证书。然后我必须input用户名和密码,然后得到JSON响应。 同样的事情,我必须做一个android应用程序编程。 试用自定义的EasySSLSocketFactory和EasyX509TrustManager,没有工作。 我得到了以下错误:java.security.cert.CertPathValidatorException:找不到证书path的信任锚点。 使用BKS密钥库,请注意mykeystore.bks是一个空文件,然后执行下面的命令 keytool -importcert -v -trustcacerts -file "test.crt" -alias IntermediateCA -keystore "mykeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-148.jar" -storetype BKS -storepass abcd1234 keytool -list -keystore "mykeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-148.jar" -storetype BKS -storepass abcd1234 MyHTTPClient.java如下所示: public class MyHttpClient extends DefaultHttpClient { final Context context; public MyHttpClient(Context context) { this.context = […]

在android上的java.lang.outofmemory错误(networking服务)

我正在使用简单的Web服务来访问服务器上的数据库中的数据。 我使用的是android api10,但是当运行代码时,我得到一个错误java.lang.OutOfMemoryError 。 我的代码是: package com.android.webservicesdemo; import java.util.ArrayList; import java.util.HashMap; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class androidactivity extends Activity { /** Called when the activity is first created. */ private static String SOAP_ACTION1 = "http://tempuri.org/getAllDealsbyCategorySer"; private […]