我正在将数据从android应用程序添加到php服务器。截至目前,我基本上每次从我的android应用程序上传一行,所以它需要为表中的每一行建立一个连接。这似乎不是很有效。我该如何更改我的代码,以便一次建立一个连接并上传表中的所有数据?我的方法看起来是这样的:从android到php服务器有效地添加表?
public Boolean upLoad(){
//tells how many entries successfully uploaded
int count = 0;
Uri uri = ProviderMetaData.TableMetaData.CONTENT_URI;
HttpPost httppost = new HttpPost("http://10.0.0.5/xampp/fields.php");
HttpClient httpclient = new DefaultHttpClient();
String[] projection = new String[]{ProviderMetaData.TableMetaData._ID,
ProviderMetaData.TableMetaData.FIELD1,
ProviderMetaData.TableMetaData.FIELD2,
ProviderMetaData.TableMetaData.FIELD3,
}
Activity a = (Activity)this.mContext;
Cursor cur = a.managedQuery(uri,projection,null,null,
ProviderMetaData.TableMetaData.);
String field1;
String field2;
String field3;
Boolean success = false;
Boolean nofailure = true;
Scanner sc;
if (cur.moveToFirst()) //fix this. cur.moveToFirst problem
{
int field1Column = cur.getColumnIndex(ProviderMetaData.TableMetaData.FIELD1);
int field2Column = cur.getColumnIndex(ProviderMetaData.TableMetaData.FIELD2);
int field3Column = cur.getColumnIndex(ProviderMetaData.TableMetaData.FIELD3);
do {
field1 = cur.getString(field2Column);
field2 = cur.getString(field2Column);
field3 = cur.getString(field3Column);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("field1", field1));
nameValuePairs.add(new BasicNameValuePair("field2", field2));
nameValuePairs.add(new BasicNameValuePair("field3", field3));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String responseText = EntityUtils.toString(response.getEntity());
count++;
success = true;
}
catch (ClientProtocolException e) {
Log.d("uploadCursorData","could not make connection");
success = false;
nofailure = false;
}
catch (IOException e) {
Log.d("uploadCursorData","Some other kind of exception" + e.toString());
success = false;
}
catch (Exception e) {
success = false;
nofailure = false;
}
} while (cur.moveToNext());
Log.d("upLoadCursorData", "The number of entries successfully oploaded are " + count);
}
Log.d("Success", "was this successful?: " + success);
return nofailure;
}
在服务器端,我只是收集和处理使用$ _ POST [“字段#”]表中的每一行。我该如何上传表格中的所有内容?
你有没有得到答案..... – 2012-03-23 12:23:56
不,仍然上传使用循环,打破和连接到服务器。 – Stagleton 2012-03-26 06:21:01