看板 Android
作者 標題 android與WebService.asmx與sqlserver(文略長)
時間 2015年02月11日 Wed. AM 03:41:39
小弟最近一直設法讓我的寫的Android可以連接到WebService。
但我看過很多網路資料,卻不知怎麼改成我想要的。
http://fanli7.net/a/bianchengyuyan/ASP/20111123/145814.html
http://ppt.cc/R;Gj
http://blog.yam.com/wewa85/article/32877801
http://andygeeks.blogspot.in/2014/02/how-to-get-data-from-soap-webservice.html
這四個是我覺得有點接近我想要的範例。
--------------------------------------分隔線----------------------------------
我的WebService有放在我電腦的iis裡,網站為:http://127.0.0.1/WebService.asmx?op=sign_up
程式碼如下:
public void sign_up(string email,
string password,
string sex,
string name,
string phone) {
using (SqlConnection test = new SqlConnection(WebConfigurationManager
.ConnectionStrings["TestUser"].ConnectionString)){
string insertStr = "insert into Test(T_email,T_pwd,T_sex,T_name,T_phone)
values(@T_email,@T_pwd,@T_sex,@T_name,@T_phone)";
using (SqlCommand data = new SqlCommand(insertStr, test)) {
test.Open();
data.Parameters.AddWithValue("@T_email", email);
data.Parameters.AddWithValue("@T_pwd", password);
data.Parameters.AddWithValue("@T_sex", sex);
data.Parameters.AddWithValue("@T_name", name);
data.Parameters.AddWithValue("@T_phone", phone);
data.ExecuteNonQuery();
test.Close();
}
}
}
--------------------------------------分隔線----------------------------------
我android的程式碼如下:
public class TestWeb extends Activity implements OnClickListener {
private EditText txtMessage;
private Button sendBtn;
private String uriAPI = "http://127.0.0.1/WebService.asmx?op=sign_up";
protected static final int REFRESH_DATA = 0x00000001;
//建立UIThread使用Handler,來接收其他Thread來訊息。
Handler mHandler = new Handler(){
//@Override
public void handleMassage(Message msg){
switch(msg.what){
case REFRESH_DATA:
String result = null;
if(msg.obj instanceof String)
result = (String)msg.obj;
if(result != null)
Toast.makeText(TestWeb.this,result,Toast.LENGTH_LONG).show();
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_web);
txtMessage = (EditText)findViewById(R.id.txt_message);
sendBtn = (Button)findViewById(R.id.send_btn);
if(sendBtn != null){
sendBtn.setOnClickListener(this);
}
}
@Override
public void onClick(View v){
if(v == sendBtn){
if(txtMessage != null){
String msg = txtMessage.getEditableText().toString();
Thread t = new Thread(new sendPostRunnable(msg));
t.start();
}
}
}
private String sendPostDataToInternet(String strTxt){
//建立http post連線
HttpPost httpRequest = new HttpPost(uriAPI);
//post運作傳送變數必須用NameValuePair[]陣列儲存
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("data", strTxt));
try{
//發出http requset
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//取得http response
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
//若狀態碼為200
if(httpResponse.getStatusLine().getStatusCode() ==200){
//取出回應字串
String strResult = EntityUtils.toString(httpResponse.getEntity());
return strResult;
}
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
class sendPostRunnable implements Runnable{
String strTxt = null;
public sendPostRunnable(String strTxt){
this.strTxt = strTxt;
}
@Override
public void run(){
String result = sendPostDataToInternet(strTxt);
mHandler.obtainMessage(REFRESH_DATA , result).sendToTarget();
}
}
}
這個是我照著我看過的第二個範例打的
我不知道要怎麼修改才能讓我在android裡取到的值
丟給我webservice裡面的這四行
data.Parameters.AddWithValue("@T_email", email);
data.Parameters.AddWithValue("@T_pwd", password);
data.Parameters.AddWithValue("@T_sex", sex);
data.Parameters.AddWithValue("@T_name", name);
data.Parameters.AddWithValue("@T_phone", phone);
--------------------------------------分隔線----------------------------------
小弟希望有人可以教我android與webservice之間的傳值,
就算只是在app輸入一段字串再點個按鈕,可以收到webservice傳回一句話,
對我來說就是一個很大很大的進步了!
(P.S.如果可以我想盡量不要用到ksoap2)
拜託各位了<(ㄒ_ㄒ)> <(ㄒ_ㄒ)> <(ㄒ_ㄒ)>
我是第一次發文,如有任何地方不對,請盡量鞭策。
--
※ 作者: five0826 時間: 2015-02-11 03:41:39
※ 編輯: five0826 時間: 2015-02-11 03:46:25
※ 同主題文章:
● 02-11 03:41 □ android與WebService.asmx與sqlserver(文略長)
03-20 16:42 Re android與WebService.asmx與sqlserver(文略長)
04-10 19:31 Re android與WebService.asmx與sqlserver(文略長)
分享網址: 複製 已複製
※
Leon
轉錄至看板 Programming (使用連結) 時間:2015-02-19 01:57:34
回列表(←)
分享