当前位置: 首页 > 知识库问答 >
问题:

真实电话中的数据未接收/但模拟器中的数据已接收->使用AsyncTask和URL[重复]

贺文彬
2023-03-14
<?php
    echo "hi";
?>
package com.example.hamed.supermarketone;

import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class AsyncTaskConnect extends AsyncTask {
    public String link;
    public AsyncTaskConnect(String link){
        this.link= link;
    }
    @Override
    protected Object doInBackground(Object[] params) {
        try {
            URL mUrl = new URL(link);
            URLConnection mConnecttion = mUrl.openConnection();
            BufferedReader mBuffReader = new BufferedReader(new InputStreamReader(mConnecttion.getInputStream()));
            StringBuilder mStringBuilder = new StringBuilder();
            String line = null;
            while ((line = mBuffReader.readLine())  !=null){
                mStringBuilder.append(line);
            }
            LoginPage.data=mStringBuilder.toString();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }
}
package com.example.hamed.supermarketone;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class LoginPage extends AppCompatActivity {

    public static String data="";
    LinearLayout mLinearLayout_gotoLogin;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {



        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_page);

        mLinearLayout_gotoLogin = (LinearLayout)findViewById(R.id.lnr_gotologin);
        mLinearLayout_gotoLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 new AsyncTaskConnect("http://nikayand.com/app/").execute();
                if (!data.equals("")){
                    Toast.makeText(G.context, data,Toast.LENGTH_SHORT).show();
                }
            }
        });

    }
}

谢谢你的帮助:-)

共有1个答案

阚通
2023-03-14

您在执行异步任务后立即显示toast,因此那里永远不会有任何数据,您必须在异步任务的onpostexecute方法中显示toast。

此外,您不应该像这样将数据发送到活动中的静态变量

public static String data="";

LoginPage.data=mStringBuilder.toString();

这是一种不好的访问数据的方法

 类似资料:
  • 我正在尝试spring websockets,由于某些原因我不明白,我可以建立与服务器的连接,但当我发送数据时什么也没有发生。 下面是我的配置类(与其他spring websocket示例完全相同): } 我的控制器,在一个包中,我确保spring inicialites它,因为我用@PostConstruct注释说明init()消息。如您所见,我编写了system.out.println以便在控

  • 我想知道过去2天在这里和那里。我的问题是,我正在使用多部分/表单数据发送多个文件,其中包含一些文本/纯字段。问题是,当我使用发送数据时,它工作正常,但是当我尝试使用发送数据时,服务器没有收到任何东西,下面是我的, 下面是方法,我是如何使用这个类的, 下面是我ASP的一面, 请帮我解决这个问题…!!!提前感谢。

  • 问题内容: 我正在尝试为请求和响应应用程序创建桌面客户端。 我能够轻松地执行GET请求。但是我想知道是否有人可以帮助我确定如何进行JSON请求和响应。并将其解析为字符串,从那里我可以锻炼如何将其全部切开 问题答案: Json.net在.net世界中无处不在。

  • 问题内容: 我正在使用套接字连接我的Android应用程序(客户端)和Java后端服务器。每次与服务器通信时,我都希望从客户端发送两个数据变量。 1)某种消息(由用户通过界面定义) 2)消息的语言(由用户通过界面定义) 我该如何发送这些消息,以便服务器将每个消息解释为一个单独的实体? 在读取了服务器端的数据并做出了适当的结论之后,我想向客户端返回一条消息。(我想我会没事的) 因此,我的两个问题是如

  • 我有一条这样的小溪和两个水槽,但一次只使用一个: 或 我们使用哪个接收器是可配置的,但是如果我并行使用两个接收器怎么办?我该怎么做? 我想到了水槽。合并,但它也需要合并策略,我不想以任何方式合并这些汇的结果。我真的不关心它们,所以我只想通过HTTP将相同的数据发送到某个endpoint,同时将它们发送到数据库。Sink combine与broadcast非常相似,但从头开始实现广播会降低代码的可读

  • 本文向大家介绍ThinkPHP中使用ajax接收json数据的方法,包括了ThinkPHP中使用ajax接收json数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP中使用ajax接收json数据的方法。分享给大家供大家参考。具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要