1、处理post请求
public class HttpGet extends Activity {
private boolean isAuthenticated;
private ArrayList<BasicNameValuePair> pairs;
private DefaultHttpClient httpclient;
private HttpPost httppost;
private InputStream content;
private String returnConnection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
Map vars=new HashMap();
vars.put("mydata", "Hello,Android");
ParameterHttp("http://5billion.com.cn/post.php",vars);
doPost();
tv.setText(this.returnConnection);
this.setContentView(tv);
}

private void ParameterHttp(String url, Map vars) {
this.httpclient=new DefaultHttpClient();
this.httppost=new HttpPost(url);
this.pairs=new ArrayList();
if(vars!=null){
Set keys=vars.keySet();
for(Iterator i=keys.iterator();i.hasNext();){
String key=(String)i.next();
pairs.add(new BasicNameValuePair(key,(String) vars.get(key)));
}
}
}

private String doPost() {
try{
UrlEncodedFormEntity p_entity=new UrlEncodedFormEntity(pairs,"ISO-8859-1");
httppost.setEntity(p_entity);
HttpResponse response=httpclient.execute(httppost);
HttpEntity entity=response.getEntity();
content=entity.getContent();
this.returnConnection=convertStreamToString(content);
Log.d("HttpPostConnection",">>>>>>>>>"+returnConnection);
int status_code=response.getStatusLine().getStatusCode();
if(status_code>=300){
this.isAuthenticated=false;
}else{
this.isAuthenticated=true;
}

}catch (Exception e) {
// TODO: handle exception
}
return returnConnection;
}

private static String convertStreamToString(InputStream is) {
/*
* To convert the InputStream to String we use the BufferedReader.readLine()
* method. We iterate until the BufferedReader return null which means
* there's no more data to read. Each line will appended to a StringBuilder
* and returned as String.
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();

String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}

return sb.toString();
}
3、SAX解析xml
public class HttpGet extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
try{
URL url=new URL("http://5billion.com.cn/example.xml");
//从SAXParserFactor获取SAXParser
SAXParserFactory spf=SAXParserFactory.newInstance();
SAXParser sp=spf.newSAXParser();
//从SAXParser获取XMLReader
XMLReader xr=sp.getXMLReader();
//创建文明自己的内容处理器
ExampleHandler myExampleHandler=new ExampleHandler();
//用内容处理器处理XMLReader
xr.setContentHandler(myExampleHandler);
//XMLReader获取xml文件
xr.parse(new InputSource(url.openStream()));
//用ExampleHandle解析XML中数据
ParsedExampleDataSet parsedExampleDataSet=myExampleHandler.getParsedData();
//将解析的结果显示到gui
tv.setText(parsedExampleDataSet.toString());
}catch (Exception e) {
tv.setText(e.getMessage());
}
this.setContentView(tv);
}


class ExampleHandler extends DefaultHandler {
private boolean in_outertag=false;
private boolean in_innertag=false;
private boolean in_mytag=false;
private ParsedExampleDataSet myParsedExampleDataSet=new ParsedExampleDataSet();

public ParsedExampleDataSet getParsedData(){
return this.myParsedExampleDataSet;
}

@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(this.in_mytag){
String str=new String(ch,start,length);
myParsedExampleDataSet.setExtractedString(str);
Log.v("ParsingXML","Characters():"+str);
}
}

@Override
public void startDocument() throws SAXException {
this.myParsedExampleDataSet=new ParsedExampleDataSet();
Log.v("ParsingXML","startDocument");
}
@Override
public void endDocument() throws SAXException {
Log.v("ParsingXML","endDocumnet");
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if(localName.equals("outertag")){
this.in_outertag=true;
}else if(localName.equals("innertag")){
this.in_innertag=true;
}else if(localName.equals("mytag")){
this.in_mytag=true;
}else if(localName.equals("tagwithnumber")){
String attrValue=attributes.getValue("thenumber");
int i=Integer.parseInt(attrValue);
this.myParsedExampleDataSet.setExtractedInt(i);
}
Log.v("ParsingXML","StartElement():"+localName);
}
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
if(localName.equals("outertag")){
this.in_outertag=false;
}else if(localName.equals("innertag")){
this.in_innertag=false;
}else if(localName.equals("mytag")){
this.in_mytag=false;
}else if(localName.equals("tagwithnumber")){
//nothing to do
}
Log.v("ParsingXML","endElement():"+localName);
}
}

class ParsedExampleDataSet {
private String extractedString=null;
private int extractedInt=0;
public void setExtractedString(String extractedString) {
this.extractedString = extractedString;
}
public void setExtractedInt(int extractedInt) {
this.extractedInt = extractedInt;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "String from XML="+this.extractedString+"\n Number from XML="+this.extractedInt;
}

}
}

更多相关文章

  1. Android获取apk的版本及包名等信息
  2. Android获取程序路径 (/data/data/appname)
  3. Android(安卓)6.0权限动态获取
  4. Android安装卸载程序解析
  5. android Json解析——揭开json解析的神秘面纱
  6. android 获取 imei号码
  7. Android处理POST请求、Android用SAX解析XML
  8. android解析xml文件 Android(安卓)DOM解析XML之全球实时地震信息
  9. android系统信息总结

随机推荐

  1. Android理解Fragment生命周期,fragment和
  2. Android(安卓)HIDL 中 hidl-gen使用
  3. 一个WebView Native Crash分析过程,居然是
  4. 大神博客资源
  5. Android(安卓)Studio无法使用Apache的Htt
  6. Android(安卓)环境搭建
  7. android studio向activity_main.xml中拖
  8. 基于Android(安卓)Studio 的NDK之 “Hell
  9. getHeight returns 0 for all Android(安
  10. Android学习笔记(三) 之模拟打电话