0

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

  • 已授予 INTERNET 权限。
  • 鲨鱼已经过检查。
  • 设备连接到 MAMP(MAC 的 WAMP)服务器并发送字符串。

安卓上的代码:

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"]; 
4

2 回答 2

0

Are you sure you're actually posting the data?

You could try sending the POST request more like below methods. Then you should be able to simply get your value in the PHP with $_POST

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;
    }
}

And

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();
    }
}
于 2013-01-11T10:49:14.367 回答
0

你有没有尝试过:

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

?

于 2013-01-09T17:17:26.620 回答