导航:首页 > 操作系统 > androidurlstring

androidurlstring

发布时间:2022-07-04 05:30:43

android中怎么把String进行url编码

java中一样使用的吧URLEncode.encode("string","utf8");

Ⅱ 如何解析从Android的一个字符串的URL

需要根据URL地址获取图片加载到图中Anroid机器人所在的位置,这是运行前的效果
首先需根据URL地址获取图片,如下所示,urladdr即为图片地址,返回Drawable对象:
//download image from network using @urladdress
private Drawable loadImageFromNetwork(String urladdr) {
// TODO Auto-generated method stub
Drawable drawable = null;
try{
//judge if has picture locate or not according to filename
drawable = Drawable.createFromStream(new URL(urladdr).openStream(), "image.jpg");
}catch(IOException e){
Log.d("test",e.getMessage());
}
if(drawable == null){
Log.d("test","null drawable");
}else
Log.d("test","not null drawable");
}
return drawable;
}
获取到图片后,需要更新主线程UI资源,考虑到时间以及界面反应延迟等,所以采用线程加以处理,如下图所示:
// image
new Thread(new Runnable(){
Drawable drawable = loadImageFromNetwork(urladdress);
@Override
public void run(){
//post() is quite important,update pictures in UI main thread
image.post(new Runnable(){
@Override
public void run(){
//TODO Auto-generated method stub
image.setImageDrawable(drawable);
}
});
}
//download image from network using @urladdress
private Drawable loadImageFromNetwork(String urladdr) {
//... 略(如 1 中所示)
}
}).start(); //线程启动

4.说明:在上述示例代码中,image是ImageView类的一个对象,也就是APP中的一个显示图像组件,利用获取到的图片drawable去更新image,

Ⅲ android根据url获取网络图片报错

这个看着是https协议的URL,用普通的http请求就报错了,我这里只有请求https到流的代码,给你先看看,把流再转成文件 就可以了


@SuppressLint("ParserError")
(StringdownUrl,StringpostStr)throwsIOException{
Stringres="";

HttpsURLConnection.setDefaultHostnameVerifier(newNullHostNameVerifier());
SSLContextcontext=null;
try{
context=SSLContext.getInstance("TLS");
}catch(NoSuchAlgorithmExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}

try{
context.init(null,newX509TrustManager[]{newmyX509TrustManager()},newSecureRandom());
}catch(KeyManagementExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());

URLdUrl=newURL(downUrl);
HttpsURLConnectiondConn=(HttpsURLConnection)dUrl.openConnection();

dConn.setDoInput(true);
if(postStr!=""){
dConn.setDoOutput(true);
dConn.setRequestMethod("POST");
}

dConn.connect();

if(postStr!=""){
try{
BufferedWriterout=newBufferedWriter(newOutputStreamWriter(
dConn.getOutputStream()));
out.write(postStr);
out.flush();

}catch(Exceptione){
StringerrMsg=e.getMessage();
if(null!=errMsg){
Toasttoast=Toast.makeText(null,errMsg,Toast.LENGTH_LONG);
toast.show();
}

e.printStackTrace();
}

}


BufferedInputStreamin=newBufferedInputStream(dConn.getInputStream());

returnin;
}


{
@Override
publicbooleanverify(Stringhostname,SSLSessionsession){
//Log.i("RestUtilImpl","Approvingcertificatefor"+hostname);
returntrue;
}
}

{
@Override
publicX509Certificate[]getAcceptedIssuers(){
returnnull;
}

@Override
publicvoidcheckClientTrusted(X509Certificate[]chain,StringauthType)
throwsCertificateException{
//TODOAuto-generatedmethodstub
}

@Override
publicvoidcheckServerTrusted(X509Certificate[]chain,StringauthType)
throwsCertificateException{
//TODOAuto-generatedmethodstub
}
}

Ⅳ 如何修改android系统设置

Ⅳ android 从json中解析出了所需图片的url(String)。

imageloader加载网络图片或者volley的metworkimageview加载网络图片

Ⅵ android 判断url是否有效

//检查网络连接状态,Monitor network connections (Wi-Vi, GPRS, UMTS, etc.)
public static boolean checkNetWorkStatus(Context context){
boolean result;
ConnectivityManager cm=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netinfo = cm.getActiveNetworkInfo();
if ( netinfo !=null && netinfo.isConnected() ) {
result=true;
Log.i(TAG, "The net was connected" );
}else{
result=false;
Log.i(TAG, "The net was bad!");
}
return result;
}
public static boolean checkURL(String url){
boolean value=false;
try {
HttpURLConnection conn=(HttpURLConnection)new URL(url).openConnection();
int code=conn.getResponseCode();
System.out.println(">>>>>>>>>>>>>>>> "+code+" <<<<<<<<<<<<<<<<<<");
if(code!=200){
value=false;
}else{
value=true;
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}

Ⅶ android 如何获得网络文件大小

public long getFileSize(String urlString) throws IOException,Exception{
long lenght = 0;
String url = UrlEncode(urlString, "UTF-8");
//URL mUrl = new URL(urlString);
URL mUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) mUrl.openConnection();
conn.setConnectTimeout(5*1000);
conn.setRequestMethod("GET");
conn .setRequestProperty("Accept-Encoding", "identity");
conn.setRequestProperty("Referer", url);
//conn.setRequestProperty("Referer", urlString);
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.connect();

int responseCode = conn.getResponseCode();
// 判断请求是否成功处理
if (responseCode == HttpStatus.SC_OK) {
lenght = conn.getContentLength();
}

return lenght;
}

Ⅷ 如何在Android开发中用HttpClient连接网络数据

HttpClient网络访问

一、HttpClient网络访问:
(一)、简介:
1、Apache组织提供了HttpClient项目,可以实现网络访问。在Android中,成功集成了HttpClient,所以在Android中可以直接使用HttpClient访问网络。

2、与HttpURLConnection相比,HttpClient将前者中的输入、输出流操作,统一封装成HttpGet、HttpPost、HttpRequest类。

HttpClient:网络连接对象;
HttpGet:代表发送GET请求;
HttpPost:代表发送POST请求;
HttpResponse:代表处理服务器响应的对象。
HttpEntity对象:该对象中包含了服务器所有的返回内容。
3、使用步骤:(六部曲)【重点】
创建HttpClient对象:通过实例化DefaultHttpClient获得;
创建HttpGet或HttpPost对象:通过实例化 HttpGet或HttpPost 获得,而构造方法的参数是urlstring(即需要访问的网络url地址)。也可以通过调用setParams()方法来添加请求参数;
调用HttpClient对象的execute()方法,参数是刚才创建的 HttpGet或HttpPost对象 ,返回值是HttpResponse对象;
通过response对象中的getStatusLine()方法和getStatusCode()方法获取服务器响应状态是否是200。
调用 HttpResponse对象的getEntity()方法,返回HttpEntity对象。而该对象中包含了服务器所有的返回内容。
借助EntityUtils的toString()方法或toByteArray()对 HttpEntity对象进行处理,也可以通过IO流对 HttpEntity对象进行操作。

(二)、封装HttpClientHelper工具类:

public class HttpClientHelper {
public static HttpClient checkNetwork(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(request);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
return httpClient;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

/**
* 作用:实现网络访问文件,将获取到数据储存在文件流中
*
* @param url
* :访问网络的url地址
* @return inputstream
*/
public static InputStream loadFileFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
HttpResponse httpResponse;
try {
httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = httpResponse.getEntity();
return entity.getContent();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
* 作用:实现网络访问文件,将获取到的数据存在字节数组中
*
* @param url
* :访问网络的url地址
* @return byte[]
*/
public static byte[] loadByteFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("====>" + e.toString());
}
return null;
}

/**
* 作用:实现网络访问文件,返回字符串
*
* @param url
* :访问网络的url地址
* @return String
*/
public static String loadTextFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toString(httpEntity, "utf-8");
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
* 作用:实现网络访问文件,先给服务器通过“GET”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。
* 第二个参数格式为:username=wangxiangjun&password=123456
* @return byte[]
*/
public static byte[] doGetSubmit(String url, String params) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url + "?" + params);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
* 作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。 第二个参数为:List<NameValuePair>
* @return byte[]
*/
public static byte[] doPostSubmit(String url, List<NameValuePair> params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost requestPost = new HttpPost(url);
try {
requestPost.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
HttpResponse httpResponse = httpClient.execute(requestPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
* 作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。 Map<String , Object>
* @return byte[]
*/
public static byte[] doPostSubmit(String url, Map<String, Object> params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost requestPost = new HttpPost(url);

List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
try {
if (params != null) {
for (Map.Entry<String, Object> entry : params.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
BasicNameValuePair nameValuePair = new BasicNameValuePair(
key, value);
parameters.add(nameValuePair);
}
}
requestPost
.setEntity(new UrlEncodedFormEntity(parameters, "utf-8"));
HttpResponse httpResponse = httpClient.execute(requestPost);

if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

Ⅸ 在Android的URL中怎么没得openConnection方法

好像是包的问题、我的一个demo:
package com.chapter8;

import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MyNetWeb extends CloseMenuActivity {
private TextView tvname;
private TextView tvpass;
private EditText evname;
private EditText evpass;
private Button btsubmit;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.netweb);

tvname = (TextView)findViewById(R.id.tvname);
tvpass = (TextView)findViewById(R.id.tvpass);
evname = (EditText)findViewById(R.id.etname);
evpass = (EditText)findViewById(R.id.etpass);
btsubmit = (Button)findViewById(R.id.btsubmit);

btsubmit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String name = evname.getText().toString().trim();
String password = evpass.getText().toString().trim();

String urlString = "";
try {
URL url = new URL(urlString);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.connect();
http.setRequestMethod("POST");
OutputStreamWriter osw = new OutputStreamWriter(http.getOutputStream());
osw.write("");
osw.flush();
osw.close();
tvname.setText(http.getInputStream().read());
http.disconnect();
tvpass.setText("ok");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
tvpass.setText(e.getMessage());
}

}
});
}
}

Ⅹ 如何在Android中实现一个简单连接网络的应用程序

注意:要执行这节课中描述的网络操作,你应用程序的manifest文件中必须包含以下权限:1 2<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>选择一个HTTP客户端 Choose an HTTP Client大多数网络连接的Android应用使用HTTP发送和接受数据,Android包括两个HTTP客户端:HttpURLConnection和Apache HttpClient,它们支持HTTPS,流上传和下载,
可配置的超时,IPv6以及连接池,在android系统版本为“姜饼”(android2.3)或者更高版本的应用程序中,推荐使用HttpURLConnection,更多关于这个主题的讨论,请查看博客Android HTTP 客户端检查网络连接 Check the Network Connection在你的应用试图连接到网络时,应该先检查网络连接是否可用,可以用getActiveNetworkInfo()和isConnected()方法执行检查。记住,设备(手机等设备)可能不在网络连接的范围内,或者用户禁用了Wi-Fi或者移动数据通道。更多关于此主题的讨论,请参看课程管理网络使用
1 2 3 4 5 6 7 8 9 10 11 12publicvoidmyClickHandler(Viewview){...ConnectivityManagerconnMgr=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfonetworkInfo=connMgr.getActiveNetworkInfo();if(networkInfo!=null&&networkInfo.isConnected()){// 获取数据}else{// 显示错误}...}在独立线程中执行网络连接 Perform Network Operations on a Separate Thread网络操作涉及不可预知的延迟,为了防止不良的用户体验,通常的做法是从UI中独立出线程去执行网络连接操作。AsyncTask类提供了最简单的从UI线程中独立出一个新任务的方式。
更多关于此主题的讨论,请参看博客多线程性能在下面的代码片段中,myClickHandler()方法执行了new DownloadWebpageTask().execute(stringUrl).DownloadWebpageTask类是AsyncTask的子类,DownloadWebpageTask实现了下面AsyncTask的方法:
doInbackground()会执行downloadUrl()方法,downlaodUrl()方法将网页的URL地址作为参数,并获取和处理网页的内容,当它处理完这些操作,将会返回一个结果字符串。
onPostExecute()接受返回字符串并显示在UI上。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 {privatestaticfinalStringDEBUG_TAG="HttpExample";privateEditTexturlText;privateTextViewtextView;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);urlText=(EditText)findViewById(R.id.myUrl);textView=(TextView)findViewById(R.id.myText);}// 当用户点击按钮,调用AsyncTask// 在试图获取URL时,确保有一个网络连接publicvoidmyClickHandler(Viewview){// 从UI的text字段中得到URLStringstringUrl=urlText.getText().toString();ConnectivityManagerconnMgr=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfonetworkInfo=connMgr.getActiveNetworkInfo();if(networkInfo!=null&&networkInfo.isConnected()){newDownloadWebpageText().execute(stringUrl);}else{textView.setText("No network connection available.");}}// 使用AsyncTask创建一个独立于主UI线程之外的任务. 并使用URL字符串创建一个HttpUrlConnection对象。 // 一旦连接建立,AsyncTask则将网页内容作为一个InputStream对象进行下载。// 最终,InputStream对象会被转换为一个字符串对象,并被AsyncTask的onPostExecute方法显示在UI上。{@(String...urls){// 参数来自execute(),调用params[0]得到URLtry{returndownloadUrl(urls[0]);}catch(IOExceptione){return"无法获取网页,URL可能无效!Unable to retrieve web page. URL may be invalid.";}}// onPostExecute显示AsyncTask结果.@(Stringresult){textView.setText(result);}}...}该片段事件顺序如下:1.当用户点击执行myClickHander()方法的按钮时,应用会将指定的URL传递给AsyncTask的子类DownloadWebpageTask。2.AsyncTask的方法doInBackground()调用downloadUrl()。3.downloadUrl()接收到作为字符串参数传递过来的URL,并用它创建一个URL对象。4.使用URL对象创建HttpURLConnection对象。5.一旦创建完HttpURLConnection对象,该对象将会以InputStream对象方式获取网页内容。6.InputStream再通过readIt()方法将流转换为字符。7.最后,AsyncTask的onPostExecute方法将字符显示在主activity的UI。连接并下载数据 Connect and Download Data在你执行网络事务的线程中,你可以使用HttpURLConnection执行GET方法下载数据,在你调用了connect()方法后,你可以通过调用getInputStream()方法得到数据的InputStream对象。
在下面的代码片段中,doInBackground()方法调用了downloadUrl()方法。downloadUrl方法接收给过来的URL,并使用它通过HttpURLConnection对象连接到网络。一旦连接成功,应用将使用getInputStream()方法获得InputStream对象数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31// 给一个URL,建立HttpUrlConnection对象并作为流对象(InputStream)获取网页数据,最后返回一个字符串。privateStringdownloadUrl(Stringmyurl)throwsIOException{InputStreamis=null;// 先显示获取到的前500个字节// 网页内容intlen=500;try{URLurl=newURL(myurl);HttpURLConnectionconn=(HttpURLConnection)url.openConnection();conn.setReadTimeout(10000/*milliseconds*/);conn.setConnectTimeout(15000/*milliseconds*/);conn.setRequestMethod("GET");conn.setDoInput(true);// 开始查询conn.connect();intresponse=conn.getResponseCode();Log.d(DEBUG_TAG,"The response is: "+response);is=conn.getInputStream();// 将InputStream转化为stringStringcontentAsString=readIt(is,len);returncontentAsString;// 确保当app用完InputStream对象后关闭它。}finally{if(is!=null){is.close();}}}注意:getResponseCode()方法返回的是连接状态码,它是获取更多关于连接信息的有效方式。状态码200表示连接成功。

阅读全文

与androidurlstring相关的资料

热点内容
哪里有无损音乐app下载 浏览:221
单片机如何使用proteus 浏览:991
java常用的服务器 浏览:281
集结APP在哪里下载 浏览:800
欧洲cf玩什么服务器 浏览:529
如何连接另一台电脑上的共享文件夹 浏览:681
如何让桌面文件夹搬家到e盘 浏览:73
java自动格式化 浏览:619
ipad怎么查看文件夹大小 浏览:583
手工粘土解压球 浏览:552
在线视频教育源码 浏览:41
快四十学什么编程 浏览:754
gnumakelinux 浏览:537
视易峰云服务器怎么改系统 浏览:535
javamap取值 浏览:768
mac和win磁盘加密软件 浏览:474
苹果为什么会连接不到服务器 浏览:726
pdf格式文件如何保存 浏览:303
小霸王服务器tx什么意思 浏览:75
解释dns命令 浏览:584