【问题标题】:trouble with printing data from server从服务器打印数据的问题
【发布时间】:2016-10-30 01:46:21
【问题描述】:

它应该回显“test”用户的密码 --> 123 但 它打印这个

http://8pic.ir/images/27z7hmtzxcooumdx0ccz.png 关于启用 javascript 和...

  • AndroidManifest ==>互联网授权

请帮帮我

我的代码:

主活动

package com.example.ok;

import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

public static String res = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button btn = (Button) findViewById(R.id.button1);

    new login("http://sharjemoft.skyf.ir/test.php/","").execute();


    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Toast.makeText(getApplicationContext(),res, Toast.LENGTH_LONG).show();

        }
    });
}

}

登录

package com.example.ok;

import java.io.BufferedReader;

import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.channels.AsynchronousCloseException;

import org.apache.http.entity.InputStreamEntity;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;

public class login extends AsyncTask{

private String Link="";
private String User="";
private String Pass="";



public login(String link,String user){

    Link=link;
    User=user;

}



@Override
protected String doInBackground(Object... arg0) {


    try{

        String         data=URLEncoder.encode("username","UTF8")+"="+URLEncoder.encode(User,"UTF8");



        URL mylink=new URL(Link);
        URLConnection connect=mylink.openConnection();

        connect.setDoOutput(true);
        OutputStreamWriter wr=new     OutputStreamWriter(connect.getOutputStream());
        wr.write(data);
        wr.flush();


        BufferedReader reader=new BufferedReader(new     InputStreamReader(connect.getInputStream()));
        StringBuilder sb=new StringBuilder();

        String line=null;

        while((line=reader.readLine()) !=null){

            sb.append(line);

        }

        MainActivity.res=sb.toString();




    }catch(Exception e){



    }



    return "";
}

}

test.php

<?php
$con=mysql_connect("sql305.skyf.ir","skyf5_18376000","milad137");
mysql_select_db("skyf5_18376000_test",$con);

$user=$_POST['username'];
$pass=$_POST['password'];

$sqlQ="select * from users where Username='$user' ";
$result=mysql_Query($sqlQ);
$row=mysql_fetch_array($result);

if($row[0]){
echo $row[1];
}else{
echo "no"; 
}
mysql_close($con);


?>

【问题讨论】:

    标签: php android


    【解决方案1】:

    在客户端(安卓)-服务器之间交互时,您应该返回一个 JSON 响应。

    This 帖子是一个很好的例子。总之,您应该做的是创建一个 JSON 对象,并将该对象返回给客户端:

    echo(json_encode($your_response));
    

    【讨论】:

    • 我对 Json 不太了解 你的意思只是 echo --> (json_encode($your_response));而不是 echo --> $row[1];在我的 test.php
    • 请仔细阅读我在回复中链接的帖子。您应该向您的 Android 设备发送 JSON 响应,以使其正确读取。
    • 我的问题没有解决,任何机构都可以使用这些代码运行我的应用程序吗?我不知道为什么“res”显示那是文本...谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2016-05-20
    • 2015-08-18
    • 1970-01-01
    相关资源
    最近更新 更多