无法通过 Android 应用程序插入 azure

2024-03-09

我正在为我的应用程序进行登录注册,我必须将它们与 microsoft azure 集成在一起。然而,尽管遵循了 microsoft azure 提供的教程,我仍然无法将我的“字符串”插入他们的数据库。代码中也没有错误,因此我不太确定哪里出了问题。下面是我的代码。

package mp.memberuse;

import java.net.MalformedURLException;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;
import com.microsoft.windowsazure.mobileservices.*;

public class LoginRegister extends Activity {

Button btn1, btn2, btn3;
EditText tf1, tf2, tf3, tf4, tf5, tf6, tf7, tf8, tf9, tf10, tf11;
TextView tv1, tv2;

private MobileServiceClient mClient;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TabHost tabs = (TabHost) this.findViewById(R.id.lt2tabhost);
    tabs.setup();

    TabSpec ts1 = tabs.newTabSpec("Login");
    ts1.setIndicator("Login");
    ts1.setContent(R.id.c1);
    tabs.addTab(ts1);

    TabSpec ts2 = tabs.newTabSpec("Register");
    ts2.setIndicator("Register");
    ts2.setContent(R.id.c2);
    tabs.addTab(ts2);

    btn1 = (Button)findViewById(R.id.button1);
    btn2 = (Button)findViewById(R.id.button2);
    btn3 = (Button)findViewById(R.id.button3);

    tf1=(EditText) findViewById(R.id.editText1);
    tf2=(EditText) findViewById(R.id.editText2);
    tf3=(EditText) findViewById(R.id.editText3);
    tf4=(EditText) findViewById(R.id.editText4);
    tf5=(EditText) findViewById(R.id.editText5);
    tf6=(EditText) findViewById(R.id.editText6);
    tf7=(EditText) findViewById(R.id.editText7);
    tf8=(EditText) findViewById(R.id.editText8);
    tf9=(EditText) findViewById(R.id.editText9);
    tf10=(EditText) findViewById(R.id.editText10);

    tv1=(TextView) findViewById(R.id.login);
    tv2=(TextView) findViewById(R.id.register);

    try {
        MobileServiceClient mClient = new MobileServiceClient("https://testrun.azure-mobile.net/","FOJanABDYiJEVMHkCECAylrXJCnVwF77",this);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    btn1.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v)
        {
            String username, password;
            username = tf1.getText().toString();
            password = tf2.getText().toString();


                    /**if(username.equals(sqlusername) && password.equals(sqlpassword))
                    {
                        SharedPreferences prefs = getSharedPreferences("myPreferences",Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor = prefs.edit();
                        editor.putString("fullname", fullname);
                        editor.commit();

                        Intent intent = new Intent(LoginRegister.this, SendMessage.class);
                        startActivity(intent);
                    }
                    else
                    {
                        tv1.setText("Invalid user");
                    } **/
                }

        }
    );

    btn2.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v)
        {
            String username, password, cpassword, fullname, nric, address, phone, email;
            username = tf3.getText().toString();
            password = tf4.getText().toString();
            cpassword = tf5.getText().toString();
            fullname = tf6.getText().toString();
            nric = tf7.getText().toString();
            address = tf8.getText().toString();
            phone = tf9.getText().toString();
            email = tf10.getText().toString();

            Members members = new Members();
            members.username = username;
            members.password = password;
            members.fullname = fullname;
            members.nric = nric;
            members.address = address;
            members.phone = phone;
            members.email = email;

            if(!password.equals(cpassword))
            {
                tv2.setText("Password & Confirm Password does not match.");
            }
            else if(username.equals("") || password.equals("") || cpassword.equals("") || fullname.equals("") || nric.equals("") || address.equals("") || phone.equals("") || email.equals(""))
            {
                tv2.setText("Do not leave any field empty.");
            }
            else
            {
                mClient.getTable(Members.class).insert(members, new TableOperationCallback<Members>() 
                {
                    public void onCompleted(Members entity, Exception exception, ServiceFilterResponse response) 
                    {
                        if (exception == null)
                        {
                            tv2.setText("Register Complete.");
                            tf3.setText("");
                            tf4.setText("");
                            tf5.setText("");
                            tf6.setText("");
                            tf7.setText("");
                            tf8.setText("");
                            tf9.setText("");
                            tf10.setText(""); 
                        } 
                        else 
                        {
                            tv2.setText("Fail to register!");
                        }
                    }
                });

                    tv2.setText("Register Complete.");
                    tf3.setText("");
                    tf4.setText("");
                    tf5.setText("");
                    tf6.setText("");
                    tf7.setText("");
                    tf8.setText("");
                    tf9.setText("");
                    tf10.setText(""); 
            }
        }
    });

    btn3.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v)
        {
            tf3.setText("");
            tf4.setText("");
            tf5.setText("");
            tf6.setText("");
            tf7.setText("");
            tf8.setText("");
            tf9.setText("");
            tf10.setText("");           
        }
    });
}
}

这是一个代码片段,希望对您有所帮助。

1)承载http get服务的函数

   private String SendDataFromAndroidDevice() {
    String result = "";

    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet getMethod = new HttpGet("your url + data appended");

        BufferedReader in = null;
        BasicHttpResponse httpResponse = (BasicHttpResponse) httpclient
                .execute(getMethod);
        in = new BufferedReader(new InputStreamReader(httpResponse
                .getEntity().getContent()));

        StringBuffer sb = new StringBuffer("");
        String line = "";
        while ((line = in.readLine()) != null) {
            sb.append(line);
        }
        in.close();
        result = sb.toString(); 


    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

2)扩展AsyncTask的类

   private class HTTPdemo extends
        AsyncTask<String, Void, String> {

    @Override
    protected void onPreExecute() {}

    @Override
    protected String doInBackground(String... params) {
        String result = SendDataFromAndroidDevice();
        return result;
    }

    @Override
    protected void onProgressUpdate(Void... values) {}

    @Override
    protected void onPostExecute(String result) {

        if (result != null && !result.equals("")) {
            try {
                JSONObject resObject = new JSONObject(result);

                } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

3)在你的onCreate方法中

     @Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView("your layout");



    if ("check here where network/internet is avaliable") {

        new HTTPdemo().execute("");
    }

   }

我提供的代码片段按以下方式工作,

1)Android设备发送URL+数据到服务器

2)Server [使用的 Azure 平台] 接收数据并给出确认

现在应该在客户端(Android)编写的代码已提供给您,在服务器接收数据的后续部分是

  • 服务器需要接收数据
  • 应该使用网络服务来做到这一点
  • 在服务器端实现Web服务
  • 每当 android 推送 URL+数据时都会调用 Web 服务
  • 一旦获得数据,就可以根据需要对其进行操作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法通过 Android 应用程序插入 azure 的相关文章

随机推荐

  • JavaScript 模板继承

    在Django框架中 网页模板可以继承其他模板 在子模板中 您定义代码块来覆盖父模板中类似名称的块 我猜还有其他后端模板系统也以这种方式工作 但 Django 是我熟悉的一个 现有的 javascript 模板系统是否支持 django 风
  • Emacs 插入居中注释块

    我想为 emacs 创建一个宏 它将插入一个带有一些居中文本的乳胶注释块 例如 Comment 1 Comment 2 Commenttext 3 这可
  • 电子邮件地址输入验证

    有没有办法在 wpf C 中对电子邮件地址进行文本框输入验证 正则表达式或验证表达式或任何可以提供帮助的内容 最好提供代码示例和一些说明 在 text changed 事件中 您可以将文本框的值传递给辅助类 public static cl
  • PHP Curl 脚本每 10 分钟从远程服务器提取数据

    我正在尝试创建一个 PHP 脚本 该脚本从远程服务器提取 xml 数据 文本和图像 并将其插入本地数据库中 我需要每 10 分钟左右运行一次此脚本 并覆盖数据库中的现有数据 如果大约一分钟后没有收到服务器的响应 我希望请求中止 直到下一个脚
  • 如果可能,使用 AJAX 从 URL 获取 JSON 数据

    我想从下面的 URL 获取 JSON 数据 并以任何可能的方式在我的网页中使用它 可以吗 http fantasy premierleague com web api elements 100 http fantasy premierlea
  • AWS Elastic Beanstalk 504 网关超时

    我有一个在 AWS Elastic Beanstalk 上运行的节点服务器 我的一个端点接受巨大的有效负载 并且该函数本身相当缓慢且冗长 可能需要长达 10 多分钟的时间 由于业务需求 它必须保留为单个 HTTP POST 并且不能拆分得更
  • 错误通知:无法展开 RemoteViews:StatusBarNotification。在 Android 牛轧糖上

    I use OneSignal SDK显示通知 我这样做是在OneSignalPushService java OneSignalPushService java public class OneSignalPushService exte
  • Chrome 扩展配置代理用户名和密码

    我正在创建一个 chrome 扩展来动态更改代理设置 但在 chrome proxy settings set 函数中 无法配置代理的用户名和密码 因此 每次设置更改后我都必须手动输入凭据 但我发现在代理自动验证 https chrome
  • 为什么我在看似相似的 R 代码中遇到函数错误?

    首先 这是一个非常基本的问题 我不确定如何表达 如果问题是重复的 尽管我使用我认为可能合适的措辞进行了检查 我显然会撤回并欣赏该链接 第二 我是sure有一种更简单的方法可以完成我正在尝试的事情 但又不想偏离轨道 好的 我试图从 0 1 矩
  • 将主机字节顺序(小端)中的字符串转换为网络字节顺序(大端)

    我有一个十六进制字符串 内容如下18000000该字符串采用主机字节顺序 小端 我需要将其转换为网络字节顺序 大端 生成的十六进制字符串将是00000018 总结一下我需要转换 18000000 to 00000018 我如何在 PHP 中
  • pandas groupby 对象的聚合

    我正在尝试从数据块的 groupby 对象中聚合一些统计信息 我必须对数据进行分块 因为有很多 1800 万 行 我想找到每个块中每个组的行数 然后将它们加在一起 我可以添加 groupby 对象 但当一项中不存在组时 结果为 NaN 看这
  • BST 插入不起作用

    我试图实现二叉搜索树的代码 问题是以下代码不起作用 但如果我传递双指针来插入函数 如 insert struct bst node data 它就会起作用 我认为它也应该适用于传递单个指针 谁能解释一下这里的错误是什么 void inser
  • 使用 LaTeX Beamer 显示代码

    我在 Beamer 演示文稿中使用以下 LaTeX 代码 begin frame begin figure centering tiny lstset language python lstinputlisting code get ext
  • 记录器应该始终是最终的和静态的吗?

    可以从多个线程访问类 在这种情况下 记录器也必须是最终的和静态的吗 谢谢 所有主要的 java 日志记录包 java util logging log4j等 是同步且线程安全的 标准模式aprivate final static即使从多个线
  • CMS 中搜索表单的 POST 与 GET 方法

    我有点被一件事困住了 只是无法决定在搜索表单中使用 POST 还是 GET 方法 通常我会使用 GET 方法来创建这样的表单 这样用户就可以为他们得到的结果添加书签 但这一次 搜索表单出现在管理区域中 因此结果很快就会相关 并且无需为结果添
  • 如何清除主屏幕上 IOS Web 应用程序的缓存?

    我正在使用 JQTouch 使用元标记 apple mobile web app capable 在主屏幕上创建一个 Web 应用程序 但无论我从 设置 中清除缓存多少次 该 Web 应用程序的 Javascript 仍然是较旧的缓存版本
  • 服务已重新启动,并显示 START_NOT_STICKY

    我有一个在后台运行的服务 如果系统在内存不足的情况下杀死该服务也没关系 但是 我不希望系统重新启动该服务 因此 为了做到这一点 我从 onStartCommand 返回 START NOT STICKY 标志 如下所示 public int
  • android.widget.TabHost.dispatchWindowFocusChanged 处的 java.lang.NullPointerException(TabHost.java:298)

    我的程序的许多用户报告 强制关闭 相同的错误 但我无法重现该错误 因此很难调试 看来它与 TabHost 有关 我的应用程序中有两个 现在 我尝试扩展 TabHost 覆盖dispatchWindowFocusChanged 并测试 get
  • 如何使用 hilt 而不是使用工厂来初始化 viewModel 中的参数

    现在我使用 viewModelFactory 来初始化片段中 viewModel 的参数 class MyFragment Fragment override fun onCreateView inflater LayoutInflater
  • 无法通过 Android 应用程序插入 azure

    我正在为我的应用程序进行登录注册 我必须将它们与 microsoft azure 集成在一起 然而 尽管遵循了 microsoft azure 提供的教程 我仍然无法将我的 字符串 插入他们的数据库 代码中也没有错误 因此我不太确定哪里出了