>

``PHP 페이지에 문자열을 보내는 방법 ''에 대한 다른 자습서를 사용하려고합니다. 내가 시도한 것은 무언가를 배우는 가장 좋은 해결책 인 것 같습니다. 응용 프로그램은 오류없이 컴파일되지만 내 장치에서 PHP 페이지로 아무것도 보내지 않는 것 같습니다. AndroidManifest.xml에 대한 권한을 부여합니다

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView content;
EditText fname,email,login,pass;
String Name,Email,Login,Pass;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    content = (TextView)findViewById(R.id.content);
    fname   =(EditText)findViewById(R.id.name);
    email   =(EditText)findViewById(R.id.email);
    login   =(EditText)findViewById(R.id.loginname);
    pass    =(EditText)findViewById(R.id.password);

    Button saveme=(Button)findViewById(R.id.save);
    saveme.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v)
        {
            try{
                GetText();
            }
            catch(Exception ex)
            {
                content.setText("url exeption!");
            }
        }
    });
}

public void GetText() throws UnsupportedEncodingException
{
    Name    = fname.getText().toString();
    Email   = email.getText().toString();
    Login   = login.getText().toString();
    Pass    = pass.getText().toString();

    String data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(Name, "UTF-8");
    data += "&" + URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(Email, "UTF-8");
    data += "&" + URLEncoder.encode("user", "UTF-8") + "=" + URLEncoder.encode(Login, "UTF-8");
    data += "&" + URLEncoder.encode("pass", "UTF-8") + "=" + URLEncoder.encode(Pass, "UTF-8");
    String text = "";
    BufferedReader reader=null;
    // Send data
    try
    {
        URL url = new URL("http://thingsforcoins.com/receive/httppost.php");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
        // Get the response

        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line = null;

        while((line = reader.readLine()) != null)
        {
            sb.append(line + "\n");
        }
        text = sb.toString();
    }
    catch(Exception ex)
    {
    }
    finally
    {
        try
        {
            reader.close();
        }
        catch(Exception ex) {}
    }
    content.setText(text);
}
}

이 앱은 4 개의 편집 텍스트 필드를 읽고 PHP 페이지로 보내야하는 문자열에 데이터를 저장합니다. 마녀는 데이터를 표시합니다.

  • 답변 # 1

    당신이 이렇게해야한다고 생각합니다 :

           byte[] postData = data.getBytes(Charset.forName("UTF-8"));
            int postDataLength = postData.length;
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Charset", "utf-8");
            conn.setRequestProperty("Content-Length", Integer.toString(postDataLength));
            conn.setUseCaches(false);
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            wr.write(postData);
            wr.close();
            if (conn.getResponseCode() == 200) {
                //...
            } else {
                //...
            }
    
    

    와이즈 비즈  당신의 data 입니까 또한 코드 라인 String data = URLEncoder.encode("name", "UTF-8") + ...  필요하지 않을 수도 있습니다.

    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

  • 이전 php - Laravel 55에서 메소드 사용자 컨트롤러를 호출하는 방법은 무엇입니까?
  • 다음 recursion - 왜 스키마와 파이썬에서 재귀 방정식에 대해 다른 반환 값을 구현합니까?