PHP无法从Android接收字符串

时间:2013-01-09 17:15:36

标签: java php android

以下代码尝试将字符串从Android发布到PHP。

  • 获得INTERNET许可。
  • 已经检查过鲨鱼。
  • 设备连接到MAMP(WAMP for MAC)服务器并发送字符串。

Android上的代码:

HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://MAMP-SERVER/post.php");

try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("username", "Andro"));
    post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    httpclient.execute(post);
    Log.i("POSTED", "YOUR USERNAME");

} catch (ClientProtocolException e) {
    Log.e("Client Protocol Exception", "Err "+ e.getMessage());
} catch (IOException e) {
    Log.e("IO Exception","Err "+ e.getMessage());
}

PHP代码:

$test=$_REQUEST["username"];  print $_REQUEST["username"]; 

2 个答案:

答案 0 :(得分:0)

你试过了吗?

$test=$_POST["username"];  print $_POST["username"]; 

答案 1 :(得分:0)

您确定要实际发布数据吗?

您可以尝试发送POST请求,就像下面的方法一样。然后,您应该能够使用$ _POST

简单地在PHP中获取您的值
public void execute(final RequestMethod method)
        throws IllegalArgumentException, UnsupportedEncodingException {
    switch (method) {
    case GET:
        // add parameters
        String combinedParams = "";
        if (!params.isEmpty()) {
            combinedParams += "?";
            for (NameValuePair p : params) {
                String paramString = p.getName() + "="
                        + URLEncoder.encode(p.getValue(), "UTF-8");

                if (combinedParams.length() > 1) {
                    combinedParams += "&" + paramString;
                } else {
                    combinedParams += paramString;
                }
            }
        }
        HttpGet getRequest = new HttpGet(remoteUrl + combinedParams);
        // add headers
        for (NameValuePair h : headers) {
            getRequest.addHeader(h.getName(), h.getValue());
        }
        executeRequest(getRequest, remoteUrl);
        break;
    case POST:
        HttpPost postRequest = new HttpPost(remoteUrl);
        // add headers
        for (NameValuePair h : headers) {
            postRequest.addHeader(h.getName(), h.getValue());
        }
        if (!params.isEmpty()) {
            postRequest.setEntity(new UrlEncodedFormEntity(
                    (List<? extends NameValuePair>) params, HTTP.UTF_8));
        }
        executeRequest(postRequest, remoteUrl);
        break;
    default:
        break;
    }
}

private void executeRequest(final HttpUriRequest request, final String url) {
    HttpClient client = new DefaultHttpClient();

    HttpResponse httpResponse;

    try {
        httpResponse = client.execute(request);
        responseCode = httpResponse.getStatusLine().getStatusCode();
        errorMessage = httpResponse.getStatusLine().getReasonPhrase();

        HttpEntity entity = httpResponse.getEntity();

        if (entity != null) {

            responseStream = entity.getContent();

            if (!needStreamInsteadOfString) {
                response = convertStreamToString(responseStream);

                // Closing the input stream will trigger connection release
                responseStream.close();
            }
        }

    } catch (ClientProtocolException e) {
        client.getConnectionManager().shutdown();
        e.printStackTrace();
    } catch (IOException e) {
        client.getConnectionManager().shutdown();
        e.printStackTrace();
    }
}