1

在 android 中,当我发布 http 帖子时,我使用以下代码创建 url 参数:

我想在 http 请求中发送一个字符串和两个字符串列表。但是在 php 代码中,我无法验证是否所有参数都存在。在下面的代码中,我希望 php if 语句为真,但它是假的。有谁知道这里有什么问题?

我从这里的答案中看到 如何在 php 中遍历一组 GET 值,您可以将参数的名称放在方括号中,然后在 php 中它将是一个数组。

谢谢。

    List<NameValuePair> urlValues = new ArrayList<NameValuePair>();

    urlValues.add(new BasicNameValuePair("id", ID));

    for(MyLocation item : THlocationList) {
       urlValues.add(new BasicNameValuePair("THlocationList[]", item.ID));
       urlValues.add(new BasicNameValuePair("THlocationList[]", item.location));
       urlValues.add(new BasicNameValuePair("THlocationList[]", item.date));
    }
    for(String item : deletionList ) {
       urlValues.add(new BasicNameValuePair("deletionList[]", item));
    }

然后我使用这个提出请求:

public static Pair<String,Integer> GetHTTPResponse(String url, List<NameValuePair> urlparameters) {
    String result = null;
    int responseCode = 0;

    try {
        HttpClient client = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);

        httppost.setEntity(new UrlEncodedFormEntity(urlparameters));
        HttpResponse response = client.execute(httppost);
        responseCode = response.getStatusLine().getStatusCode();    

        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        result = rd.readLine().trim();
    }
    catch (Exception e) {
        responseCode = 0;
    }

    return new Pair<String, Integer>(result, responseCode);
}

在我的 php 代码中,由于某种原因,这被评估为 false:

if (isset($_POST['id']) && isset($_POST['THlocationList']) && isset($_POST['deletionList'])) {
    ...
}
4

0 回答 0