答案 0 :(得分:3)
您可以使用以下代码
public class UploadData extends AsyncTask<String, Void, AppState> {
private static int[] number=new int[100];
private static int count=0;
String edit_id2;
private int numItems=0;
@Override
protected void onPostExecute(AppState result) {
UserdataList data= new UserdataList() ;
};
@Override
protected AppState doInBackground(String... params) {
List<NameValuePair> nameValuePairs;
UserdataList data= new UserdataList() ;
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://your serverlink/foldername/filename.php");
nameValuePairs = new ArrayList<NameValuePair>(50);
numItems = data.getDataList().size();
for(int i=0; i<numItems ;i++)
{
if(data.getDataList().get(i).transfered){
continue;
} else
if(!data.getDataList().get(i).transfered)
{
nameValuePairs.add(new BasicNameValuePair("address", data.getDataList().get(i).address));
nameValuePairs.add(new BasicNameValuePair("store", "Kosmo"));
nameValuePairs.add(new BasicNameValuePair("appearance", data.getDataList().get(i).appearance));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_16));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
nameValuePairs);
httppost.setEntity(formEntity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
int status = response.getStatusLine().getStatusCode();
if(status == 200){
System.out.println("ResponseCode of record: "+ i + " is " + status);
data.getDataList().get(i).transfered=true;
System.out.println("Transfered");
nameValuePairs.clear();
} else {
System.out.println(" NOT Transfered");
data.getDataList().get(i).transfered=false;
}
}
}
data.reInitializeList();
data.getDataList().clear();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
return data.getUserdata();
}
}
并在Appstate类中创建Appstate类创建构造函数并定义要在数据库中传递的所有变量字段...
public class AppState implements Serializable{
public String appointment="", address="", mannerism="", consultation="", treatment="",advice="", appearance="", billing="", waiting="",experience="",suggestions="";
public String pname="", formatted,phone=" ";
AppState userdata;
boolean transfered;
AppState(){
this.address=" ";
this.appearance="";
this.suggestions="";
this.appointment=" ";
this.mannerism=" ";
this.experience="";
this.consultation=" ";
this.treatment=" ";
this.advice=" ";
this.billing=" ";
this.waiting=" ";
this.pname=" ";
this.phone =" ";
this.formatted=" ";
}
}
使用您的数据库文件更改appstate字段
public class UserdataList {
private static List<AppState> userDataList;
private static AppState userdata;
public AppState getUserdata() {
if (null == userdata) {
userdata = new AppState();
}
return userdata;
}
public List<AppState> getDataList() {
if (null == userDataList) {
userDataList = new ArrayList<AppState>();
}
return userDataList;
}
public void addDataToList(AppState data) {
if (null == userDataList) {
userDataList = new ArrayList<AppState>();
}
userDataList.add(data);
userdata = null;
}
public void reInitializeList() {
userDataList.clear();
}
public void sendData() {
new UploadData().execute(" ");
userdata = null;
}
public UserdataList() {
getUserdata();
}
}
注意:sdk 23不再支持DefaultHttpClient,因此建议使用带有此代码的目标sdk 21。
答案 1 :(得分:0)
您可以使用httppost类来帮助您 您可以参考以下网址来帮助您
http://www.androidsnippets.com/executing-a-http-post-request-with-httpclient
答案 2 :(得分:0)
Http-Request库可以帮助你很多,让你的编程生活更轻松;)阅读简短指南并使用它:)