android studio 与后台交互问题 网络访问的问题 5C

url返回了我需要的值 只有我在控制台点击url的时候 服务器端才会有反应

HttpResponse response = httpClient.execute(httpGet);不执行

代码如下:
package com.cy.mynj.com.cy.mynj.login;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.cy.mynj.R;
import com.cy.mynj.com.cy.mynj.activities.MainActivity;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
private EditText et_phone;
private EditText et_password;
private Button btn_login;
private TextView tv_login_register;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initViews();
}
private void initViews() {
et_phone=(EditText)findViewById(R.id.et_phone);
et_password=(EditText)findViewById(R.id.et_password);
btn_login=(Button)findViewById(R.id.btn_login);
btn_login.setOnClickListener(this);
tv_login_register=(TextView)findViewById(R.id.tv_login_register);
tv_login_register.setOnClickListener(this);
tv=(TextView)findViewById(R.id.tv);
}
@Override
public void onClick(View view) {
String phone = et_phone.getText().toString();
String password=et_password.getText().toString();
System.out.println(phone + "," + password);
System.out.println("按钮点击的线程的名字为:"
+ Thread.currentThread().getName());

            Mythread mythread= new Mythread(phone,password);
            mythread.start();


}
Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        // TODO Auto-generated method stub
        super.handleMessage(msg);

        tv.setText(Thread.currentThread().getName() + msg.obj);
        // 在把这个字符串变成一个JSONObejct
        try {
            JSONObject obj = new JSONObject(msg.obj.toString());
            String value = obj.getString("loginstate");
            System.out.println("value-->" + value);
            if (value.equals("success")) {
                Intent intent = new Intent(LoginActivity.this,
                        MainActivity.class);
                startActivity(intent);
            } else {
                Toast.makeText(LoginActivity.this, "登录失败",Toast.LENGTH_SHORT
                ).show();
            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
};
private class Mythread extends Thread {
    private String phone;
    private String password;
    public Mythread(String phone, String password) {
        this.phone = phone;
        this.password = password;
    }
        @Override
    public void run () {
        // 在线程中请求服务器的资源
        // Apache HttpClient
        // 1.创建HttpClient对象
        HttpClient httpClient = new DefaultHttpClient();
        Log.d("test", "t0");
        // 2.构建请求的URL
        String url = "http://172.20.10.3:8080/appnews/user?phone=" + phone
                + "&password=" + password + "&operator=login";
        // String url = "http://10.0.2.2:8080/appnews/servlet/StudentServlet";

        // 3.创建HttpGet请求的对象
        HttpGet httpGet = new HttpGet(url);
        Log.d("test4", "t4");
        // 4.使用创建的httpClient执行这个httpGet请求
        try {
            HttpResponse response = httpClient.execute(httpGet);
            Log.d("test3", "t3");
            // 5.判断服务器端请求和应答是否成功
            if (response.getStatusLine().getStatusCode() == 200) {
                System.out.println("请求和应答成功");
                // 服务器端传输的数据的一个android封装的对象
                HttpEntity entity = response.getEntity();
                String msg = EntityUtils.toString(entity, "UTF-8");
                System.out.println("server-->" + msg);
                // 在android中,子线程不能更新界面组件的值,
                // 因为界面组件是单线程模型,必须回到主线程更新组件的值。
                // tv.setText(msg);
                // 构建消息对象
                Message smsg = new Message();
                smsg.obj = msg;
                handler.sendMessage(smsg);
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.d("test5", "t5");
            e.printStackTrace();
        }
    }
}
}

6个回答

试试看直接用浏览器来访问请求的URL,看看能不能正常返回你需要的

weixin_39125267
weixin_39125267 不能正常返回 我debug运行的时候一到子线程的部分就没有运行
一年多之前 回复

服务器是否有返回值,是格式不对还是根本没有返回值

代码太多没有查看,一般来说前后台无法交互,都是协议出问题了,建议你用在线模拟请求的发送的网址,测试一下能不能正常返回数据,如果不能就要修改你后台代码。测试最好用真机测试,因为模拟器网络请求有些时候会出一些莫名其妙的bug,我经常遇见明明弹窗是请求失败,偏偏还正常返回数据了

你可以用真机试一下,直接在浏览器输入URL,看返回值有无

weixin_39125267
weixin_39125267 回复qq_33756493: HttpResponse response = httpClient.execute(httpGet);这句无法执行 服务器端接收不到
一年多之前 回复
qq_33756493
昵称_Justin 回复weixin_39125267: 你可以加个断点吧,我觉得你的try里面有地方异常导致的
一年多之前 回复
weixin_39125267
weixin_39125267 返回值为null 服务器端没有正常运行
一年多之前 回复

用电脑连接手机,直接测试一下看看,最好是Debug测试

weixin_39125267
weixin_39125267 都没有用
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
webbrowser与后台交互问题
win程序里面有个参数A,如何将这个参数传给webbrowser调用的页面使用?
javaScript和后台交互的问题
我在javaScript是这样写的rnrnrn[code=JScript] document.getElementById("HiddenField1").Value =2;rn alert(document.getElementById("HiddenField1").Value); // 结果是2;rn document.getElementById("Button1").click();[/code]rnrn[code=VB.NET]Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Clickrnrn msgbox(HiddenField1.Value ); '结果是空字符串rn rnrnEnd sub[/code]rnrn[color=#FF0000]为什么啊,晕, 在javaScript里面不是已经赋值到了么,为什么后台得不到呢,怎么解决啊..............[/color]
javascript与后台交互的问题
做一个摇奖的系统,要从后台读取摇奖人的信息到客户端脚本,然后摇奖结果从客户端存入后台数据库。请问这两步要怎么实现啊?希望高手们帮帮忙,尽量给出详细点的帮助。谢谢啦!
jQuery 与后台交互问题
我前台用的是 jquery-easyUI 框架 是 asp.net MVC 问题是 怎么把Datagrid 控件 增加 修改 删除 怎么往Controller里传对象啊 我只能传值 但是增加 和修改 的话 传值就太多了 不知道怎么解决 如果有例子的话就太好了。。哎,困扰了半天。。。。
ajax和后台交互的问题
[color=#FF0000]数据库返回的数据,不使用F5刷新,不在页面显示出来,怎么办?[/color]rn代码太多了,我只复制一部分,重要的,下面的是使用UI插件,写的,点击按钮,数据就提交到后台了,这个步骤是正常的rn[code=javascript]rn$('#question').dialog(rn autoOpen:false,rn modal:true,rn resizable:false,rn width:500,rn height:360,rn buttons:rn '发布':function()rn //发表提问rn $(this).ajaxSubmit(rn url:'php/add_content.php',rn type:'POST',rn data:rn user:$.cookie('user'),rn content : $('.uEditorIframe').contents().find('#iframeBody').html(),rn ,rn beforeSubmit:function(formDate,jqForm,options)rn $('#loading').dialog('open');rn $('#question').dialog('widget').find('button').eq(1).button('disable');rn ,rn success:function(responseText,statusText)rn if(responseText)rn $('#question').dialog('widget').find('button').eq(1).button('enable');rn $('#loading').css('background', 'url(img/success.gif) no-repeat 20px center').html('提问成功...');rn //window.location.reload();rn setTimeout(function()rn $('#loading').dialog('close');rn $('#question').dialog('close');rn $('#question').resetForm();rn $('#loading').css('background', 'url(img/loading.gif) no-repeat 20px center').html('提交问题中...');rn ,1000)rn rn ,rn )rn rn rn );rn//这里是为了页面展示后台的内容,使用的ajaxrn$.ajax(rn url : 'php/show_content.php',rn type : 'POST',rn success : function (response, status, xhr) rn //这里面忽视了很多代码rn rn)rn[/code]rn下面是两个PHP文件rn[code=php]rn//add的文件rnrn//show的文件rn $value ) rn $row[$key] = urlencode(str_replace("\n","", $value));rn rn $json .= urldecode(json_encode($row)).',';rn rn rn echo '['.substr($json, 0, strlen($json) - 1).']';rn rn mysql_close();rn?>rn//config文件rnrn[/code]rn[color=#FF0000]数据库肯定没问题的,我想问下,怎么修改PHP文件或JS文件,能实现,提交数据后,立马在页面显示出来,且不使用F5或其他方法对整个页面刷新。[/color]
android与后台交互
大概的意思,希望能看懂
网络访问问题
如果通过IP地址或者网址登录到对方的电脑,怎样才能访问它的文件系统,比如读取磁盘里的电子文档等?一般要用到什么class和那种方法?
网络访问问题,,
在局域网中,我访问别的机子,怎样设置才能我在网上邻居点他的机子可以直接进入而不要显示一个输入用户名和密码的对话框.rnrn在这个局域网中,我有的机子可以直接打开,而没有对话框.而有的则要输入用户名和密码,我想实现的是一打开这个机就可以直接进入,而不要提示输入用户名与密码。rnrn都是使用的window200prorn大家帮帮我,急...谢谢了
网络访问问题~~~~!!!
问个问题 我在运行里面//ip地址可以访问的,在网上邻居怎么打不开?? rnrn机器都在同一个域里面的
网络访问问题!!!!!!
我才装了一台win2000 server。所有网络设置都正确。。。而且我添加了局域网协议。。。并且开通了guest帐号。。。但就是win98的机子不能访问到此计算机 。而且其它一些计算机可以访问此计算机!!!、rn请问如何解决!!!
网络访问问题。
网络是以工作组工作的,其中只要一台计算机同时被10台或10台以上计算机访问时就会出现问题。网络资源不足,或权限不足,无法访问。所有计算机的系统都是WIN2000 个人版,以前服务器遇到这样的问题,服务器用的是WIN2000SERVER,调下客户端个数就可以了。也就是微软件的许可。但是WIN2000个人版,在那调啊,请大家帮帮忙。
网络访问问题!
局域网内有一台电脑不能被其它的电脑访问,当用\\**方式的时候,一旦输入网络密码就会提示无网络名,请问这是怎么回事,这台电脑没有安装防火墙,GUEST也打开了的.所有的系统是win2000.其它电脑都可以互访.
网络访问的问题
局域中有40台机子,刚开机时大家都可以互相访问,过一段时间后,就不能访问啦,错误提示为“无法访问\\C6,找不到网络路径,系统发生53错误”,不知这与DNS服务有关?如果局域网中的DNS的性能影响大不大?
Extjs与后台数据库交互问题
当点击查询,请求令一个servlet,怎样让查询结果仍放在这个grid中,或者弹出一个window,把结果放到window中,我的后台到前台的数据传输使用的xml格式,前台接收时报错rnrn[color=#FF0000]Ext.Error: You're trying to decode an invalid JSON String: 101????????????012012-6-9 15:26:3412012-6-9 15:26:3411rnhttp://localhost:8080/myproj/ext4/ext-all-debug.js/eval/seq/11rnLine -19149[/color]
webbrowser如何和后台交互的问题?
在winform窗体利用webbrowser控件添加了一个控件,隐藏域,用来承载后台获取到的值。。。rnrnrn但是现在不知道后台该如何为这个控件赋值,求解???rnrnrn控件id=gps_info_listrnrn嵌入的网页为静态网页。。。
关于js与后台交互的问题
请问js如何取到struts2放到Valuestack中的值?rn我的需求如下:rn 在后台将Cert对象放入valuestack,cert有一个status属性,用来记录状态(有效,失效),我要通过前台的js将其取出,然后设置radio(有效、失效)的checked
iOS 前台和后台交互问题
[color=#00FF00]iOS 上做一个登陆界面。。不知道怎么描述自己的问题厄。。类似qq登陆界面那种,我把用户输入的用户名和密码,传给后台,让后台去判断用户名和密码正确与否,然后传一个值给我,告诉我用户名和密码是否正确,用户名和密码正确登陆成功,反之登陆失败。。。。现在的问题是,我不知道怎么把用户名和密码传给后台??也不知道后台怎么传东西给我??关于这一方面的可不可以给我详解一下?或者给我一些关键字?或者连接?谢谢拉。。前台是什么?后台是什么?我的理解为,前台就是iphone界面,用户看到的东西。。后台就是一些技术支持,数据支持。。。[/color][size=16px][/size]
关于前台和后台交互的问题?
html:rnfunction beginrefresh()rnrn var temp = <%= GetTime(?) %>;rn ……rnrnrnC#:rnrnpublic string GetTime( int intNum )rnrn return this.ar[intNum];rnrnrn现在我要实现上面的?用jscript的变量来代替,请问该怎么整?rnrn我用rndocument.all("Hidden1").value = "2";rnvar temp = <%= GetTime( Convert.ToInt32( Hidden1.Value.ToString() ) ) %>;rnHidden1已经被我申明成服务器控件了,可是上面的第一句没起作用,就是说不能在HTML里对Hidden1进行赋值(我都觉得奇怪了),但如果在属性栏里给Hidden1一个默认的value的话,GetTime()又能读出来rn说得有点乱,见谅rnrnrn
MVC后台和前台交互的问题
假如有一个主页面,里面有一个div默认是不显示的,当用户成功登陆之后让这个div显示,请问该怎么操作啊!!我用的是MVC3,是通过后台操作前台的js,还是用ajax进行操作啊,初学小弟求各位不吝赐教。。
网络访问的问题?!
局域网间访问rnrn在网上邻居里点击对方计算机名显示“无法访问\\***找不到网络路径”rnrn可以PING到对方rnrn可以在浏览器里输入对方IP访问rnrn双方都为WIN2K(其中WIN2K可以访问WIN98,反之不行)rnrnrn
网络访问问题?
4台电脑,我的WIN2000,1台WIN98,2台WINXP,在网上邻居中可以看到其它机子,其中:rn1:我可以访问WIN98,可以复制他的文件到我的机子上,但是我却不能在他的机子上进行操作,WIN98看得到我,但不能进行任何操作。没有提示输入用户名及密码。rn2:我能访问一台WINXP,能进行任何操作,但是他却不能访问我,也没有提示输入用户名。rn3:点击另一台WINXP时,他提示不能访问网络。其它机子均不能访问。rnrn我的网络属性是这样的:(V)表示选中。rn(V)microsoft网络客户端rn(V)microsoft网络的文件和打印机共享rn( )网络载量平衡rn(V)AppleTalk Protocolrn (V) NetBEUT Protocolrn (v) NWLink NetBIOSrn (V) NWLink IPX/NetBIOS Compatible Transport....rn (v) Internet协议(TCP/IP)rn如何觖决?
javascript与后台代码交互问题
程序写完 测试成功rn但是挂到IIS上设置就不行 这个是什么原因劳驾帮看看rn[code=JScript]rn rn[/code]rn[code=HTML]rn删除rn[/code]
vue ajax 与后台交互问题
之前对 vue 做过简单的了解,但是对如何使用 vue 与后台进行数据交互仍是一知半解。今天通过我的毕业设计,我了解了如何使用 vue 进行数据交互。本来打算使用 vue-resource,但尝试了几次都没有成功,最后使用 ajax 成功了。贴上代码如下:注意,首先要在页面上引入  jQuery.js  以及 vue.js. &amp;lt;div class=&quot;input-group wsh-a...
关于JS脚本与后台交互的问题
请问如何在前台用JS脚本给服务器控件赋值.比如给TextBox赋值.rn还有后台怎么读取前台非服务器控件的值.比如某DIV中的文本.
前台与后台交互使用的问题?
兄弟们,请帮俺解决下边这个问题,谢谢了。rnrn问题:rn C# Web开发,新增记录,在文本框中输入“姓名”时,触发OnTextChanged()事件,在事件里写代码,检索数据库中是否存在与当前输入的姓名相同的人。rn如果有-->弹出一个对话框“已存在与该人员同名的人,要查看其信息吗?”,点击“确定”,打开一个新页面,显示信息。
android网络访问
通过URL获取服务器路径URL url =new URL(&quot;HTTP://本机IP:端口号/web名称/处理文件名称&quot;);通过url获取HttpURLConnection对象HttpURLConnection conn =new url.openConnection();设置请求方法为POST或者GETconn.setReaquestMethod(&quot;POST&quot;);获取响应码int code = c...
u3d与安卓交互(Android studio)
AndroidStudio导出 .jar文件,在Unity里使用 开发环境:as2.3.2.0,u3d5.6.0as部分: 1.新建工程时的最低版本跟u3d中相同 2.Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 下,复制 classes.jar 文件到Android项目的libs
Unity/Android Studio交互开发环境配置
1、 下载Android Studio: https://developer.android.google.cn 谷歌提供的国内镜像下载链接 2、 JDK的安装及配置:  下载jdk-8u152-windows-x64.exe,下载完成后查看数字签名是否可用。  双击安装,unity目前不支持jdk9版本  jdk+jre安装完成,进行环境变量配置,右键电脑、属性。  系统变量,新建JAV...
Android注册登录 sqlite后台交互
Android 实现注册登录,有登录验证。登录后列表显示微博,也可以发布微博
android访问服务器与后台交互
1.Android的后台程序是不是应该把整个工程放在服务器上。n2.如果放在服务器上(是不是随便放在服务器上的某个盘下都行),Android应该怎么访问(重点是URL地址怎么写)n3.后台如果要修改东西,是不是修改完了,还得重新往服务器上放。n4.Android 后台 服务器的关系是什么?
Android和H5的交互问题
1、如果Android中的数据传输到H5界面中,目前是需要记录登录状态。只需要在h5接收的链接中添加token值: 例如: String token = SharedPreferencesUtils.getString("token", "", getActivity()); if (!TextUtils.isEmpty(token)) { Intent intent = new
unity与android交互的问题
第一个是androidjavaobject崩溃:在之前的whee项目中,在开发捏脸及换装系统时,会用到unity与android及ios的强交互。然后再与android交互换装时,一开始我们是android拖动不松手也会不断的发消息给unity告诉unity捏脸的百分比,然后unity收到后会回调信息给Android告诉他捏脸是否成功。 在这种交互下,app会崩,并且崩在libunity层。刚开...
Android与H5的交互问题
一、Android带数据到H5中 1、如果Android中的数据传输到H5界面中,目前是需要记录登录状态。只需要在h5接收的链接中添加token值:例如:String token = SharedPreferencesUtils.getString("token", "", getActivity()); if (!TextUtils.isEmpty(token)) { Intent int
unity3d与android 交互问题
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. C:\Program Files (x86)\Java\jdk1.7.0_15\bin\java.exe -Xmx1024M -Dcom.android.s
android与js的交互问题
原创,如需转载请标明出处。 一:本地html的加载问题 正常情况: 在app目录下的src文件夹下的main文件夹下创建assets文件夹,在assets文件夹下创建test.html。(assets应该与res文件夹同级别) 加载本地html方式: webview.loadUrl(&quot;file:///android_asset/test.html&quot;); 如果: 如果创建的test.h...
Android Studio的一个问题
为什么我的activity main.xml不能添加控件,一创建一个新的项目会出现如图的这个问题
Android Studio遇到的问题
Android Studio使用教程1、Debug在debug的时候不用每次都去重启应用程序,这样会很浪费时间。如何对正在运行的程序进行debug? 首先点击Attach debugger to Android proccess 图标 然后选择要debug的进程,如下图所示:最后看到Debug当中出现 Connected to the target VM, address: ‘localhost
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法