android:java.net.sockettimeout异常
实际上,我正在开发一个android应用程序…我需要从.net webservice获取100多行数据…(使用ksoap2)…但是当我调用webservice时,我得到了套接字超时..异常..我没有获取100行,而是尝试获取30行..效果很好..因此我无法识别问题是在.net webservice还是在我的android中。 我只是想知道是否有其他方法可以同时获取大量数据 我还添加了权限:android:java.net.sockettimeout异常,java,android,.net,web-services,android-ksoap2,Java,Android,.net,Web Services,Android Ksoap2,实际上,我正在开发一个android应用程序…我需要从.net webservice获取100多行数据…(使用ksoap2)…但是当我调用webservice时,我得到了套接字超时..异常..我没有获取100行,而是尝试获取30行..效果很好..因此我无法识别问题是在.net webservice还是在我的android中。 我只是想知道是否有其他方法可以同时获取大量数据 我还添加了权限: <uses-permission android:name="android.permission.
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
代码:
package school.demo;
导入java.util.ArrayList;
导入java.util.HashMap;
导入org.ksoap2.SoapEnvelope;
导入org.ksoap2.serialization.SoapObject;
导入org.ksoap2.serialization.SoapSerializationEnvelope;
导入org.ksoap2.transport.HttpTransportSE;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.GridView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类代码扩展活动{
按钮b1;
文本视图t1;
字符串s=“11-10-2012”;
int c=0,j=0;
ArrayList al=新的ArrayList();
HashMap图;
私有静态最终字符串命名空间=”http://TestClass/";
私有静态最终字符串URL=“http://****.*/TestClass/Service1.asmx”;
私有静态最终字符串HelloWorld\u SOAP\u ACTION1=”http://TestClass/getdata";
私有静态最终字符串方法\u NAME2=“getdata”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.accounts);
GridView g1=(GridView)findViewById(R.id.gridView1);
SoapObject请求=新的SoapObject(名称空间,方法\名称2);
请求。添加属性(“Uname”,s);
SoapSerializationEnvelope=新的SoapSerializationEnvelope(
第11版);
envelope.dotNet=true;
envelope.setOutputSoapObject(请求);
HttpTransportSE httpTransport=新的HttpTransportSE(URL);
httpTransport.setTimeout(模式世界可读);
试一试{
调用(HelloWorld\uSOAP\uAction1,信封);
SoapObject res=(SoapObject)envelope.getResponse();
SoapObject根=(SoapObject)res.getProperty(0);
SoapObject s_deals=(SoapObject)root.getProperty(“表1”);
字符串s=s_deals.toString();
httpTransport.requestDump=“TRUE”;
//Toast.makeText(getApplicationContext(),s,
//Toast.LENGTH_LONG).show();
对于(int i=1;i
logcat中的任何警告错误,然后在此处共享。是否不设置超时?您正在显式地设置它(设置为听起来不像超时值的值),然后询问它为什么在某些时间后超时。。。时间?错误日志..检索活动{key=Landroid/app/Activity;}[在Activity.class[在android.app[在E:\adt-bundle-windows-x86\sdk\platforms\android-10\android.jar中]的附加javadoc时超时]我删除了超时并进行了检查..仍然面临相同的问题..logcat错误:GC_显式释放6K,54%释放2544K/5511K,外部410K/517K,暂停53ms 01-03 10:53:13.143:D/dalvikvm(141):GC_显式释放118K,50%释放2988K/5895K,外部1241K/1559K,暂停102ms 2537K/5511K,外部410K/517K,暂停65ms 01-03 10:53:23.213:D/dalvikvm(227):GC_显式释放8K,54%释放2597K/5639K,外部410K/517K,暂停137ms 01-03 10:53:25.908:D/SntpClient(61):请求时间失败:java.net.SocketException:协议不支持地址族
package school.demo;
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.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
public class Code extends Activity {
Button b1;
TextView t1;
String s = "11-10-2012";
int c = 0, j = 0;
ArrayList<String> al = new ArrayList<String>();
HashMap<String, String> map;
private static final String NAMESPACE = "http://TestClass/";
private static final String URL = "http://***.**.**.**/TestClass/Service1.asmx";
private static final String HelloWorld_SOAP_ACTION1 = "http://TestClass/getdata";
private static final String METHOD_NAME2 = "getdata";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.accounts);
GridView g1 = (GridView) findViewById(R.id.gridView1);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME2);
request.addProperty("Uname", s);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.setTimeout(MODE_WORLD_READABLE);
try {
httpTransport.call(HelloWorld_SOAP_ACTION1, envelope);
SoapObject res = (SoapObject) envelope.getResponse();
SoapObject root = (SoapObject) res.getProperty(0);
SoapObject s_deals = (SoapObject) root.getProperty("Table1");
String s = s_deals.toString();
httpTransport.requestDump="TRUE";
// Toast.makeText(getApplicationContext(), s,
//Toast.LENGTH_LONG).show();
for (int i = 1; i < root.getPropertyCount(); i++) {
Object o = root.getProperty(i);
SoapObject main = (SoapObject) o;
String f1 = main.getProperty(1).toString();
String f2 = main.getProperty(2).toString();
String f3 = main.getProperty(3).toString();
String f4 = main.getProperty(4).toString();
String f5 = main.getProperty(5).toString();
//String f6 = main.getProperty(6).toString();
al.add(f1);
al.add(f2);
al.add(f3);
}
@SuppressWarnings("unchecked")
ArrayAdapter a1 = new ArrayAdapter(Code.this, R.layout.blows,
R.id.textView1, al);
g1.setAdapter(a1);
g1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), " " + arg2,
Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_LONG).show();
}
}
}