Android使用Get方式提交参数给Web

HTTP协议发送数据:数据小于2K可以使用GET方式。

传送中文参数会出现乱码。

服务端和客户端要统一编码。

主要代码:

package com.zyq.service;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class VideoService {
	public static boolean save(String name,String time) throws Exception {
		Map parms=new HashMap();
		parms.put("name", name);
		parms.put("time", time);
		parms.put("method", "save");
		String path="http://www.android-study.com/wangluobiancheng/33.html";
		
		return sendGETRequest(path,parms,"UTF-8");
	}
	/**
	 * 发送GET请求 
	 * @param path请求路径
	 * @param parms请求参数
	 * @return 请求结果
	 * @throws Exception
	 */
	private static boolean sendGETRequest(String path, Map parms,String encoding) throws Exception {
		StringBuilder sb=new StringBuilder();
		sb.append(path);
		if (parms!=null && !parms.isEmpty()) {
			sb.append("?");
			for (Entry entry: parms.entrySet()) {
				sb.append(entry.getKey()).append('=')
										 .append(URLEncoder.encode(entry.getValue(), encoding))
										 .append('&');
			}
			sb.deleteCharAt(sb.length()-1);
		}
		URL url=new URL(sb.toString());
		HttpURLConnection conn=(HttpURLConnection) url.openConnection();
		conn.setReadTimeout(1000*5);
		conn.setRequestMethod("GET");
		if (conn.getResponseCode()==200) {
			return true;
		}
		return false;
	}
}

activity

package com.zyq.main;
import com.zyq.service.VideoService;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
	private EditText videonameText;
	private EditText videotimetext;
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button button=(Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				String name=videonameText.getText().toString().trim();
				String time=videotimetext.getText().toString().trim();
				
				try {
					boolean bool=VideoService.save(name, time);
					if (bool) {
						Toast.makeText(MainActivity.this, R.string.succss, 1).show();
					}
					else {
						Toast.makeText(MainActivity.this, R.string.fail, 1).show();
					}
				}
                catch (Exception e) {
					Toast.makeText(MainActivity.this, R.string.netfail, 1).show();
					e.printStackTrace();
				}
			}
		});
    }
}

string.xml

暂无评论
  • 1:请一针见血的评论。
  • 2:评论需要审核通过后才能显示。
  • 3:评论字数限制在1000字以内。
  • 当前字数:0
热门文章
推荐文章
随机文章
关于本站 - 广告服务 - 版权声明 - 联系我们 - 友情链接 - 网站地图 - 帮助中心