本文介绍了发送从申请POST请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有Android应用程序的布局。
我在布局的EditText领域。
用户会写城市和地址,在那里。
我需要发送POST请求的服务器使用此信息。
想看到默认的工具和使用RestSharp变种。
我为什么能写入POST请求在此字段中输入哪些用户。
AXML文件:
\r
\r\r
\r<的LinearLayout\r
机器人:方向=垂直\r
安卓了minWidth =25像素\r
安卓了minHeight =25像素\r
机器人:layout_width =match_parent\r
机器人:layout_height =226.7dp\r
机器人:ID =@ + ID / parentContainer2\r
机器人:背景=#99000000\r
机器人:可点击=真\r
机器人:可聚焦=真\r
机器人:focusableInTouchMode =真正的>\r
<的TextView\r
机器人:文字=АДРЕСДОСТАВКИ\r
机器人:textAppearance =机器人:ATTR / textAppearanceMedium\r
机器人:layout_width =match_parent\r
机器人:layout_height =43.8dp\r
机器人:ID =@ + ID / clicklistener1\r
机器人:TEXTSIZE =22sp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=CENTER_HORIZONTAL\r
机器人:paddingTop =7DP\r
机器人:可聚焦=真\r
机器人:focusableInTouchMode =真/>\r
<的EditText\r
机器人:ID =@ + ID /米斯托\r
机器人:layout_width =333.9dp\r
机器人:layout_height =44.3dp\r
机器人:提示=Вашгород\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp/>\r
<的EditText\r
机器人:ID =@ + ID / vulitsa\r
机器人:layout_width =333.9dp\r
机器人:layout_height =44.3dp\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp\r
机器人:layout_marginTop =14.4dp\r
机器人:提示=Вашаулица/>\r
<的LinearLayout\r
机器人:方向=横向\r
安卓了minWidth =25像素\r
安卓了minHeight =25像素\r
机器人:layout_width =match_parent\r
机器人:layout_height =58.0dp\r
机器人:ID =@ + ID / linearLayout16\r
机器人:layout_marginTop =12.0dp>\r
<的EditText\r
机器人:ID =@ + ID / budinok\r
机器人:layout_width =153.6dp\r
机器人:layout_height =44.3dp\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp\r
机器人:layout_marginTop =14.4dp\r
机器人:提示=Дом/>\r
<的EditText\r
机器人:ID =@ + ID / kvartira\r
机器人:layout_width =167.7dp\r
机器人:layout_height =44.3dp\r
安卓的inputType =数字\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp\r
机器人:layout_marginTop =14.4dp\r
机器人:提示=Квартира/>\r
< / LinearLayout中>\r
< / LinearLayout中>\r
<的LinearLayout\r
机器人:方向=垂直\r
安卓了minWidth =25像素\r
安卓了minHeight =25像素\r
机器人:layout_width =match_parent\r
机器人:layout_height =226.7dp\r
机器人:ID =@ + ID / linearLayout15\r
机器人:背景=#77777777>\r
<的TextView\r
机器人:文字=КОНТАКТЫ\r
机器人:textAppearance =机器人:ATTR / textAppearanceMedium\r
机器人:layout_width =match_parent\r
机器人:layout_height =43.8dp\r
机器人:ID =@ + ID / clicklistener2\r
机器人:TEXTSIZE =22sp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=CENTER_HORIZONTAL\r
机器人:paddingTop =7DP/>\r
<的EditText\r
机器人:ID =@ + ID / imya\r
机器人:layout_width =333.9dp\r
机器人:layout_height =44.3dp\r
机器人:提示=Имя\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp/>\r
<的EditText\r
机器人:ID =@ + ID /福美来\r
机器人:layout_width =336.4dp\r
机器人:layout_height =44.3dp\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp\r
机器人:layout_marginTop =14.4dp\r
机器人:提示=Фамилия/>\r
<的EditText\r
机器人:ID =@ + ID /电话\r
机器人:layout_width =336.4dp\r
机器人:layout_height =44.3dp\r
安卓的inputType =数字\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp\r
机器人:layout_marginTop =14.4dp\r
机器人:提示=Номертелефона/>\r
< / LinearLayout中>\r
<的LinearLayout\r
机器人:方向=垂直\r
安卓了minWidth =25像素\r
安卓了minHeight =25像素\r
机器人:layout_width =match_parent\r
机器人:layout_height =226.7dp\r
机器人:ID =@ + ID / linearLayout15\r
机器人:背景=#99000000>\r
<的TextView\r
机器人:文字=ВАШКОММЕНТАРИЙ\r
机器人:textAppearance =机器人:ATTR / textAppearanceMedium\r
机器人:layout_width =match_parent\r
机器人:layout_height =43.8dp\r
机器人:ID =@ + ID / clicklistener3\r
机器人:TEXTSIZE =22sp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=CENTER_HORIZONTAL\r
机器人:paddingTop =7DP/>\r
<的EditText\r
机器人:ID =@ + ID /注释\r
机器人:layout_width =333.9dp\r
机器人:layout_height =165.5dp\r
安卓的inputType =TEXT\r
机器人:背景=#1a1a1a\r
机器人:layout_marginLeft =14.4dp\r
机器人:文字颜色=#FFFFFFFF\r
机器人:重力=左\r
机器人:paddingTop =10dp\r
机器人:paddingLeft =20dp/>\r
< / LinearLayout中>
\r
这是字符串,我需要通过POST请求发送:
\r
\r\r
\r\r
<令\r
CallConfirm ={} CallConfirm\r
PayMethod ={} PayMethod\r
QtyPerson ={} QtyPerson\r
类型={类型}\r
PayStateID ={} PayStateID\r
备注={}备注\r
RemarkMoney ={} RemarkMoney\r
时间规划={}间规划\r
品牌={}品牌\r
DiscountPercent ={} DiscountPercent\r
BONUSAMOUNT ={} BONUSAMOUNT\r
部={}系\r
>\r
<客户登录={}登录FIO ={} FIO/>\r
<地址\r
CITYNAME ={} CITYNAME\r
工作站名称={}工作站名称\r
StreetName ={} StreetName\r
众议院={}屋\r
语料库={}语料库\r
大厦={}建设\r
平={}平\r
门廊={}门廊\r
地板={}楼\r
门code ={门code}\r
/>\r
\r
<电话code ={电话code}号码={}号/>\r
<产品>\r
{}产品\r
< /产品>\r
< /排序>
\r
解决方案
I use this static method :
private static String performPostCall(String requestURL, Map<String, String> postDataParams) {
URL url;
String response = "";
try {
url = new URL(requestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line=br.readLine()) != null) {
response+=line;
}
}
else {
response="";
//TODO add different responseCode (like HttpURLConnection.HTTP_NOT_FOUND (404), or error 500 etc)
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
with the getPostDataString method :
private static String getPostDataString(Map<String, String> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;
for(Map.Entry<String, String> entry : params.entrySet()){
//sinon on pourrait faire
//result=result.replaceFirst("&", "");
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
return result.toString();
}
postDataParams is the map that will be passed as Post data.
You can then either set it to one key with your whole Order string, or you can set all your keys and manage them on your server.
Hope it helped.
EDIT :
Forgot to say that this is to be used in a separated thread, please use an AsyncTask
这篇关于发送从申请POST请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!