Android使用HttpURLConnection简单的获取百度的首页源码失败? 18C

就是想很简单的获取百度的源码,开了一个子线程,却不知到为什么一直获取失败。求高手告之原因。
代码:

 public class MainActivity extends Activity implements View.OnClickListener
{

    public static final int SHOW_RESPONSE = 0;

    private Button sendRequest;

    private TextView responseText;

    private Handler handler = new Handler() {

        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SHOW_RESPONSE:
                    String response = (String) msg.obj;
                    // 在这里进行UI操作,将结果显示到界面上
                    responseText.setText(response);
            }
        }

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web_layout);
        sendRequest = (Button) findViewById(R.id.send_request);
        responseText = (TextView) findViewById(R.id.response_text);
        sendRequest.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.send_request) {
            sendRequestWithHttpURLConnection();
        }

    }



    private void sendRequestWithHttpURLConnection() {
        // 开启线程来发起网络请求
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection connection = null;
                try {
                    URL url = new URL("http://www.baidu.com/");
                    connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(8000);
                    connection.setReadTimeout(8000);
                    connection.setDoInput(true);
                    connection.setDoOutput(true);
                    if(connection.getResponseCode()!=200)
                    {
                        Log.d("haha", "code is "+connection.getResponseCode());
                    }
                    InputStream in = connection.getInputStream();
                    // 下面对获取到的输入流进行读取
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(in));
                    StringBuilder response = new StringBuilder();

                    String line;
                    while ((line = reader.readLine()) != null) {
                        response.append(line);
                    }
                    Message message = new Message();
                    message.what = SHOW_RESPONSE;
                    // 将服务器返回的结果存放到Message中
                    message.obj = response.toString();
                    handler.sendMessage(message);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (connection != null) {
                        connection.disconnect();
                    }
                }
            }
        }).start();
    }


}

布局代码:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >

    <Button
        android:id="@+id/send_request"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Send Request" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/response_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </ScrollView>

</LinearLayout>

7个回答

你的这个程序需要注意这么几点,网络权限,InputStream in = connection.getInputStream();
// 下面对获取到的输入流进行读取
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
StringBuilder response = new StringBuilder();

                String line;
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                Message message = new Message();
                message.what = SHOW_RESPONSE;
                // 将服务器返回的结果存放到Message中
                message.obj = response.toString();
                handler.sendMessage(message);

应该放在if语句里面,然后读取的时候我建议你写成byte[]类型,容易转化,还有,数据尽量用接口回调去处理,这样清晰而且不容易报错

应该用HTTPS去访问 然后就是访问权限

private void sendRequestWithHttpURLConnection() {
// 开启线程来发起网络请求
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection = null;
try {
URL url = new URL("https://www.baidu.com/");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);

                if (connection.getResponseCode() == 200) {
                    InputStream in = connection.getInputStream();
                    // 下面对获取到的输入流进行读取
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(in));
                    StringBuffer response = new StringBuffer();

                    String line;
                    while ((line = reader.readLine()) != null) {
                        response.append(line + "\n");
                    }

                    in.close();
                    Message message = new Message();
                    message.what = SHOW_RESPONSE;
                    // 将服务器返回的结果存放到Message中
                    message.obj = response.toString();
                    handler.sendMessage(message);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (connection != null) {
                    connection.disconnect();
                }
            }
        }
    }).start();
}

![图片说明](https://img-ask.csdn.net/upload/201612/25/1482642226_211156.png)

connection.setDoInput(true);
connection.setDoOutput(true);
将这两个去掉就行了,具体原因请查询api 。希望你采纳,

不知道你的错误信息是什么?这段代码本身没什么问题,百度现在是https的访问协议。看到网上一个分析的是错误码是302的问题。如下:302也已经提示你问题所在了,你访问的URL地址有问题,百度现在是全站https,所以你应该使用https://www.baidu.com来进行测试,但http://www.baidu.com在浏览器上又能访问到页面,是什么问题呢?这是因为百度做了跳转,自动给你跳转到https://www.baidu.com上,这个跳转由一个302页面来进行,动作很快,基本察觉不到。这就是为什么你得到302而不200。
图片说明

是否配置网络权限
HttpClient写起来更简单

百度有可能反扒虫,你的请求设置一下user agent试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android使用HttpURLconnection时getInputStream出现超时
代码如下: public void getRequest(final String urlPath){ new Thread(){ public void run(){ try{ URL url = new URL(urlPath); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setReadTimeout(5*1000); con.setConnectTimeout(5*1000); con.setDoInput(true); con.setDoOutput(true); con.setRequestMethod("POST"); con.setUseCaches(false); con.setRequestProperty("Content-type","application/x-www-form-urlencoded"); con.setRequestProperty("Content-type",String.valueOf(data.length)); OutputStream outputStream = con.getOutputStream(); outputStream.write(data); con.connect(); outputStream.flush(); outputStream.close(); con.getInputStream(); int response = con.getResponseCode(); if(response ==HttpURLConnection.HTTP_OK){ Message false_message = new Message(); false_message.what = 100; handler.sendMessage(false_message); con.disconnect(); }else { Message false_message = new Message(); false_message.what = 101; handler.sendMessage(false_message); con.disconnect(); } }catch (Exception e){ e.printStackTrace(); Message false_message = new Message(); false_message.what = 102; handler.sendMessage(false_message); } } }.start(); } 在 con.getInputStream()时会出现Java.net.SocketTimeoutException 但是实际上在服务器上是已经收到了我发送的信息 所以这是为什么呢???
android 关于HttpURLConnection 抛出了异常
``` private String url = "http://www.baidu.com"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_download); new Thread(new Runnable() { @Override public void run() { //从网络获取数据 String msgs = get(url); } }).start(); } public String get(String url) { HttpURLConnection conn = null; try { // 利用string url构建URL对象 URL mURL = new URL(url); conn = (HttpURLConnection) mURL.openConnection(); conn.setRequestMethod("GET"); conn.setReadTimeout(10000); conn.setConnectTimeout(10000); int responseCode = conn.getResponseCode(); String msg = getString(responseCode); Log.i("msg",msg); if (responseCode == 200) { InputStream is = conn.getInputStream(); String response = getStringFromInputStream(is); return response; } else { throw new NetworkErrorException("response status is "+responseCode); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); } } return null; } 代码如上,拿百度网址测试是没问题的,是可以到getInputStream的,也显示出responseCode是200 ; connected 也是true 拿自己服务器的url测试就出了问题,在执行getResponseCode时就会抛出异常![跳转抛出异常](https://img-ask.csdn.net/upload/201605/29/1464464089_453718.png),但是connected情况是true的![](https://img-ask.csdn.net/upload/201605/29/1464464132_966673.png) 这个错误是因为什么呢``` ```
在Android 4.0连接HttpURLConnection失败
我使用以下代码从网络上获取changelog。 InputStream content = null; try { URL url = new URL("http://dreamhawk.blinkenshell.org/changelog.txt"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.connect(); content = urlConnection.getInputStream(); BufferedReader r = new BufferedReader(new InputStreamReader(content)); StringBuilder total = new StringBuilder(); String line; String NL = System.getProperty("line.separator"); try { while ((line = r.readLine()) != null) { total.append(line + NL); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String page = total.toString(); Dialog dialog = new Dialog(Main.this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle(R.string.changelog); dialog.setCanceledOnTouchOutside(true); TextView text = (TextView) dialog.findViewById(R.id.text); text.setTextSize(13); text.setText(page); dialog.show(); } catch (Exception e) { //handle the exception ! } 在Android 2.3或以下版本可以正常运行。但是只要ICS更新,就没有dialog,没有response,什么都没有,怎么改变代码?求教。
android HttpURLConnection Post方式设置参数,访问服务器
android HttpURLConnection Post方式设置参数,访问服务器 怎么写,
Android studio使用HttpurlConnection无法连接的问题。
背景:Android studio编写获取webservice soap xml 我在eclipse中用java编写的个测试例子, 用的是HttpurlConnection可以成功读取数据,但是我搬到Android studio中,无法连接,会跳转到catch。我也按照网上说的方法加了线程,以及httpclient不能使用情况下载build中加入相关uselibary等等方法,都无法连接成功。请问我应该怎么解决,有懂的朋友帮帮忙,谢谢。 以下是代码: confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v){ new Thread(new Runnable() { @Override public void run() { String id= edit.getText().toString(); httpClient(id); } }).start(); //这段代码在主线程中调用,开启一个线程 // String id= edit.getText().toString(); // httpClient(id); } }); } private void httpClient(String id) { //以SOAP1.1的格式发送 String httpBody = XMLDom.requestSOAP1(id); myXMLPost(httpBody); } private void myXMLPost(final String httpBody) { Map<String, String> map1 = new HashMap<String, String>(); try {//创建post对象 HttpURLConnection connection = (HttpURLConnection) new URL("http://119.10.51.138:86/erp.asmx").openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); connection.setRequestProperty("SOAPAction", "http://tempuri.org/GetPROC_ORDER_Detail"); connection.connect();//连接服务器 OutputStream os = (OutputStream) connection.getOutputStream(); os.write(httpBody.getBytes()); os.flush(); os.close(); InputStream is = (InputStream) connection.getInputStream();//获取数据,真正的请求从此处开始 byte[] bts = new byte[is.available()]; is.read(bts); String detailResult = new String(bts); map1 = XMLDom.getLoginResult(detailResult); String s = map1.get("sl"); result.setText(s); } catch (Exception e) { e.printStackTrace(); result.setText("连接错误"); } }
怎么使用HttpURLConnection的post方式获取某个网页数据
我使用如下方式想要获取某个网页的数据: ``` URL url = new URL(str); httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setConnectTimeout(15000); httpURLConnection.setReadTimeout(15000); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Connection", "Keep-Alive"); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); ``` 传入的url为http://www.baidu.com或者http://www.csdn.net,使用如下方法后去输入流及返回码: ``` InputStream input = connection.getInputStream(); int code = connection.getResponseCode(); ``` 但是执行的结果却是: ``` code: 301 respose: <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>openresty</center> </body> </html> ```
android 中使用HttpURLConnection报错
代码如下: ``` private String HttpConnection(String urlString) throws IOException { HttpURLConnection urlConnection = null; BufferedInputStream in = null; final URL url; try { url = new URL(urlString); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setConnectTimeout(5000); in = new BufferedInputStream(urlConnection.getInputStream()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } InputStreamReader isr; String result=""; String line=""; try { if (in!=null){ isr=new InputStreamReader(in,"utf-8"); BufferedReader br=new BufferedReader(isr); while ((line=br.readLine())!=null){ result+=line; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } urlConnection.disconnect(); return result; } ```使用移动网络就会报这个09-07 09:47:24.705: W/System.err(21672): java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)异常,然而如果用wifi网络就没有问题,把网址直接输入浏览器中打来也没有问题。这是怎么回事呢
Java使用HttpURLConnection执行getInputStream方法的时候没有反应了
Java使用HttpURLConnection的时候 返回码是200 但执行getInputStream方法的时候没有反应了,也不报错
android httpurlconnection或者httpclient总是超时
android httpurlconnection或者httpclient总是超时,服务器正常,但网络正常,浏览器可以上网 ,也设置了超时处理,也添加了网络权限。代码也没有问题(因为我测试过别的接口。是可以访问的)。。。希望大神恩给点提示
HttpURLConnection.getInputStream获取长度为-1
百度得知Android2.2以上使用getInputStream,需要加上 ``` hc.setRequestProperty("Accept-Encoding", "identity"); ``` 可是试了下还是不行。。。 ``` URL url = new URL(s); HttpURLConnection hc = (HttpURLConnection)url.openConnection(); hc.setRequestMethod("GET"); hc.setDoInput(true); hc.setUseCaches(false); hc.setInstanceFollowRedirects(true); hc.setRequestProperty("Accept-Encoding", "identity"); //加上 hc.setRequestProperty("Host", "api.yeelink.net"); hc.setRequestProperty("U-ApiKey", "4d968660ad88e84f2c66ee5723e60cf8"); hc.setRequestProperty("Content-Length", "0"); hc.setRequestProperty("Connection", "close"); hc.connect(); int streamLength = hc.getContentLength(); ```
关于使用HttpURLConnection登录教务系统的问题
在网上找了好多文章都没能解决,希望大神帮忙! 如果有做过的大神希望分享一份源码,感激不尽。
android httpurlconnection 400
像服务端请求,返回的结果是400,怎么解决啊
Android开发中的HttpURLConnection的问题
为什么我连接不到服务器求大神告知谢谢。我的代码如下 String n = name.getText().toString(); String p = password.getText().toString(); URL url = new URL("http://192.168.211.19:8080/AndroidTest/Login?name=" + n + "&password" + p); HttpURLConnection uc = (HttpURLConnection) url.openConnection(); InputStream out = uc.getInputStream(); String result = String.valueOf(out.read()); 服务器端代码如下 String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println(name + password); ServletOutputStream out = response.getOutputStream(); if(name != null && password != null && name.equals("admin")){ out.print("1"); }else{ out.print("0"); }在线等挺急的
Android HttpURLConnection getContentLength 为-1
我的下载链接格式如下: https://examp.test.com/file/1.mp3 HttpUrlConnection的用法如下: URL url = new URL(aUrl); HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection(); httpsURLConnection .setRequestProperty("Accept-Encoding", "identity"); httpsURLConnection.setUseCaches(false); 大部分设定都是采用的默认值 我的文件是直接放在数据库中的,server拿到下载请求时根据请求的名称和类型从数据库中把文件拿出来返回给客户端。 现在出现一个奇怪的问题,当文件是一个文本格式的时候(txt),contentlength可以正常的返回要下载文件的总长度, 当是一个二进制文件时(如mp3/image),contentlength 就全部返回-1. 请问大大这个可能是什么原因呢?
Android 我的HttpUrlConnection返回的数据为什么不是Gzip格式的?
我的请求总是返回content-length,而且是错误的,Volley的没有返回这个头,这是什么原因导致的呢? 12-25 09:26:25.335: E/zouguibao(3555): Connection keep-alive 12-25 09:26:25.335: E/zouguibao(3555): Content-Length 272 12-25 09:26:25.345: E/zouguibao(3555): Content-Type text/plain;charset=UTF-8 12-25 09:26:25.345: E/zouguibao(3555): Date Fri, 25 Dec 2015 14:27:21 GMT 12-25 09:26:25.345: E/zouguibao(3555): Server Apache/2.2.21 12-25 09:26:25.345: E/zouguibao(3555): Set-Cookie BIGipServerpool_N0_IP47.161_P80=3204489482.20480.0000; path=/ 12-25 09:26:25.345: E/zouguibao(3555): X-Android-Received-Millis 1451053585345 12-25 09:26:25.345: E/zouguibao(3555): X-Android-Response-Source NETWORK 200 12-25 09:26:25.345: E/zouguibao(3555): X-Android-Selected-Transport http/1.1 12-25 09:26:25.345: E/zouguibao(3555): X-Android-Sent-Millis 1451053585249 12-25 09:28:35.047: E/zouguibao(3615): Connection keep-alive 12-25 09:28:35.047: E/zouguibao(3615): Content-Type text/plain;charset=UTF-8 12-25 09:28:35.047: E/zouguibao(3615): Date Fri, 25 Dec 2015 14:29:31 GMT 12-25 09:28:35.047: E/zouguibao(3615): Server Apache/2.2.21 12-25 09:28:35.047: E/zouguibao(3615): Set-Cookie BIGipServerpool_N0_IP47.161_P80=3204489482.20480.0000; path=/ 12-25 09:28:35.047: E/zouguibao(3615): Transfer-Encoding chunked 12-25 09:28:35.047: E/zouguibao(3615): Vary Accept-Encoding 12-25 09:28:35.047: E/zouguibao(3615): X-Android-Received-Millis 1451053715058 12-25 09:28:35.047: E/zouguibao(3615): X-Android-Response-Source NETWORK 200 12-25 09:28:35.047: E/zouguibao(3615): X-Android-Selected-Transport http/1.1 12-25 09:28:35.047: E/zouguibao(3615): X-Android-Sent-Millis 1451053714859
怎么使用httpurlconnection获取内部网的输入流
如题,怎么才能获得譬如内网192.168.x.x这样网址的输入流。通过urlconnection得到的状态码是500
android 原生HttpUrlConnection发送POST请求报502错误
![![图片说明](https://img-ask.csdn.net/upload/201801/16/1516085151_731208.png)图片说明](https://img-ask.csdn.net/upload/201801/16/1516085135_757331.png)
安卓HttpURLConnection通过POST连接服务器问题
先上代码,我估计是最简单的一个发起通信的请求了吧(然而萌新真的很懵)。 ``` public void sendRequestWithHttp(){ new Thread(new Runnable() { HttpURLConnection httpURLConnection; JSONObject jsonObject=new JSONObject(); @Override public void run() { try{ jsonObject.put("CarId",1); URL url=new URL("http://192.168.1.108:8080/transportservice/type/jason/action/GetCarSpeed"); httpURLConnection=(HttpURLConnection) url.openConnection(); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setReadTimeout(8000); httpURLConnection.setUseCaches(false); DataOutputStream dataOutputStream=new DataOutputStream(httpURLConnection.getOutputStream()); String message=String.valueOf(jsonObject); dataOutputStream.writeBytes(message); dataOutputStream.flush(); dataOutputStream.close(); httpURLConnection.disconnect(); }catch (Exception e){ e.printStackTrace(); } } }).start(); } ``` emmmm大佬们,我现在只想向服务器发送数据,只要发过去就好QwQ 然后无论我怎么点击发送按钮(上方代码放在按钮事件中),服务器都没有一丝丝的反应(url地址是没问题的,这个可以放心)。 ``` Setting device_provisioned has moved from android.provider.Settings.Secure to android.provider.Settings.Global. jank_removeInvalidNode all the node in jank list is out of time ``` (尤其是第二个,报的最多,我百度了好久也没明白什么意思) (顺便问一下大佬,这个HttpURLConnection是从哪一步开始向服务器发起连接请求及数据的---比如OkHttp里面有一句 ``` Request request=new Request.Builder().url("http://192.168.1.108:8080/transportservice/type/jason/action/GetCarSpeed").post(requestBody).build(); ``` 起这个作用的。 ) 下面是修改后的代码,至于原因—大概就是不同的那一行出的问题吧 ``` JSONObject jsonObject=new JSONObject(); jsonObject.put("CarId",1); URL url=new URL("http://192.168.1.108:8080/transportservice/type/jason/action/GetCarSpeed"); httpURLConnection=(HttpURLConnection) url.openConnection(); httpURLConnection.setRequestProperty("Content-Type","application/json"); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); httpURLConnection.setReadTimeout(500000); httpURLConnection.setConnectTimeout(8000); httpURLConnection.setUseCaches(false); httpURLConnection.getOutputStream().write(String.valueOf(jsonObject).getBytes()); int code=httpURLConnection.getResponseCode(); httpURLConnection.disconnect(); ``` 总而言之,只修改了两个地方: 一个是读数据的时间,一个是发送数据的方式。
HttpURLConnection获取网页源码 网址太长不能正确获取数据
我用HttpURLConnection获取网页源码 当网址比较长的时候就无法正确连接到网页是怎么回事? 代码如下: private String getURLResponse(String urlString){ HttpURLConnection conn = null; //连接对象 InputStream is = null; String resultData = ""; try { URL url = new URL(urlString); //URL对象 conn = (HttpURLConnection)url.openConnection(); //使用URL打开一个链接 conn.setDoInput(true); //允许输入流,即允许下载 conn.setDoOutput(true); //允许输出流,即允许上传 conn.setUseCaches(false); //不使用缓冲 conn.setRequestMethod("GET"); //使用get请求 is = conn.getInputStream(); //获取输入流,此时才真正建立链接 InputStreamReader isr = new InputStreamReader(is); BufferedReader bufferReader = new BufferedReader(isr); String inputLine = ""; while((inputLine = bufferReader.readLine()) != null){ resultData += inputLine + "\n"; } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(is != null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn != null){ conn.disconnect(); } } return resultData; } }
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# 图片上传 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd
立即提问