用volley在Genymotion上获取网页源码

XML代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.dell.fuwuqicunchu.fuwuqicunchu"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/et_1"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="volleyget"
            android:onClick="volleyget"
            android:layout_weight="1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="volleypost"
            android:onClick="volleypost"
            android:layout_weight="1"/>
    </LinearLayout>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et_2"/>
</LinearLayout>

JAVA代码

package com.example.dell.myfuwuqi;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.HashMap;
import java.util.Map;

public class webActivity extends AppCompatActivity {

    EditText et_1;
    EditText et_2;

     ProgressDialog progressDialog;

    private android.os.Handler handler = new android.os.Handler(){

        @Override
        public void handleMessage(Message msg) {

           String content = (String)msg.obj;

            et_2.setText(content);

            //progressDialog.dismiss();

        }
    };

    RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);

        et_1=(EditText)findViewById(R.id.et_1);
        et_1.setText("http://192.168.1.101:8080/Testweb/testweb.jsp");
        et_2=(EditText)findViewById(R.id.et_2);

        requestQueue =Volley.newRequestQueue(this);

    }

    public void volleyget(View view)
    {
        new Thread(){
            @Override
            public void run() {

               // progressDialog = new ProgressDialog(webActivity.this);

                StringRequest str = new StringRequest(et_1.getText().toString(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {

                        Message msg = new Message();
                        msg.obj=s;
                        handler.sendMessage(msg);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        Toast.makeText(webActivity.this, "失败", Toast.LENGTH_SHORT).show();
                        progressDialog.dismiss();
                    }
                });

                requestQueue.add(str);

            }
        }.start();

    }

    public void volleypost(View v)
    {
        new Thread(){
            @Override
            public void run() {
               // final ProgressDialog dialog = new ProgressDialog(webActivity.this);

                StringRequest str = new StringRequest(Request.Method.POST, et_1.getText().toString(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {

                        Message msg = new Message();
                        msg.obj=s;
                        handler.sendMessage(msg);

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {

                        Toast.makeText(webActivity.this, "失败", Toast.LENGTH_SHORT).show();
                        //dialog.dismiss();
                    }
                }){
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String,String> map = new HashMap<String,String>();

                        map.put("name","volley");
                        return map;
                    }
                };

                requestQueue.add(str);

                super.run();
            }
        }.start();

    }
}

备注:

1、在4.0之后谷歌强制要求连接网络不能在主线程进行访问。

2、只有主线程(UI线程)才可以更显UI。

时间: 2024-10-18 14:13:29

用volley在Genymotion上获取网页源码的相关文章

Python爬虫学习之获取网页源码

偶然的机会,在知乎上看到一个有关爬虫的话题<利用爬虫技术能做到哪些很酷很有趣很有用的事情?>,因为强烈的好奇心和觉得会写爬虫是一件高大上的事情,所以就对爬虫产生了兴趣. 关于网络爬虫的定义就不多说了,不知道的请自行点击查看 =>百度百科 网络爬虫,维基百科 网络爬虫 有很多编程语言都可以编写网络爬虫,只不过各有各的优缺点,这里我选择用Python语言编写爬虫,因为Python是一门非常适合用来编写爬虫的语言,用它实现爬虫的代码量相对其他语言要少很多,并且python语言对网络编程这类模块

POST教程笔记 - WinHttp获取网页源码

①.WinINet与WinHttp的异同点,为什么使用WinHttp讲解? 详情见:<WinINet与WinHttp总结>文档,已经打包给大家了. ②.WinHttp接口调用方式:微软官方地址:http://msdn.microsoft.com/en-us/ ... 84263(v=vs.85).aspxWinHttp微软提供了两种调用方式:C++调用API的版本.COM组件的版本.这里面使用的是 C++ Interface 接口的组件的方式来给大家讲解. ③.WinHttp常用命令讲解:详情

IXMLHTTPRequest获取网页源码的心得

在万一老师的博客看到一种利用IXMLHTTPRequest来获取网页源码的方法,但有2个问题没解决,自己研究了下改进了方法. 1.如果网页进行301转跳将无法获取源码 2.如果网站是gb2312编码将获取的是乱码 /////以下方法使用的是Delphi xe2编写 uses MsXML,activex; function GETHTML (const URL : string):string; // XMLHTTP接口Var XMLHTTP:IServerXMLHTTPRequest; HTML

Delphi XE下获取网页源码记录

存放个自己写的获取网页源码,掌握了: 1.利用CreateOLEObject方式获取源码 2.自动判断网页格式编码 需要使用到的单元:Winapi.ActiveX,System.Win.ComObj,System.WideStrUtils 需要创建结构体:TResultWebHtml (用于存放返回的源码和Cookies) Uses Winapi.ActiveX,System.Win.ComObj,System.WideStrUtils; type TResultWebHtml = record

C++ 获取网页源码码的操作

#include <stdio.h>#include <windows.h>#include <wininet.h>#pragma comment(lib,"Wininet.lib")#include <vector>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ vector<TCHAR> v; TCHAR szUrl[] = _T("http:/

vc++获取网页源码

使用IWinHttpRequest获取网页源码 首先要创建基于对话框的mfc应用程序, 2.import+接口方式 首先导入winhttp.dll,使用IWinHttpRequest接口 #import "C:\\Windows\\System32\\winhttp.dll" void CHttpTestDlg::OnBnClickedButton1() { ::CoInitialize(NULL); // 初始化com组件 IWinHttpRequest *pHttpReq = NU

asp.net C# 获取网页源码的几种方式

1 方法 System.Net.WebClient aWebClient = new System.Net.WebClient(); aWebClient.Encoding = System.Text.Encoding.Default; Byte[] pageData = aWebClient.DownloadData(url); string nhtml = Encoding.GetEncoding("utf-8").GetString(pageData); 2方法 System.N

delphi webbrowser 获取网页源码

转自 http://hi.baidu.com/delphidiary 转自 http://blog.sina.com.cn/s/blog_725fb194010150jh.html //前面要加几个pas单元uses Registry,ShellApi, WinInet,ShlObj,ComObj;//========================================删COOKIES========================== procedure DelRegCache;

按键精灵 vbs 获取网页源码 xp系统被拒绝

如下面的代码所示,获取新浪博客某个指定网页的源码 verurl = "http://blog.sina.com.cn/s/blog_9ea1db7b0101o7ch.html?" & now() Set Http = CreateObject("Microsoft.XMLHTTP") Http.open "get", verurl, False Http.send Delay 50 vbody = Http.responsebody Tr