Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用NameValuePair将数组值发送到servlet?_Java_Google App Engine_Servlets - Fatal编程技术网

Java 如何使用NameValuePair将数组值发送到servlet?

Java 如何使用NameValuePair将数组值发送到servlet?,java,google-app-engine,servlets,Java,Google App Engine,Servlets,我试图将布尔值数组发送到servlet。 这就是我到目前为止所做的,我被困在这里: HttpClient client = new DefaultHttpClient(); String postURL = "http://APP_NAME.appspot.com/listenforrestclient"; HttpPost post = new HttpPost(postURL); List<NameValuePair> params = new

我试图将布尔值数组发送到servlet。 这就是我到目前为止所做的,我被困在这里:

HttpClient client = new DefaultHttpClient();  
    String postURL = "http://APP_NAME.appspot.com/listenforrestclient";
    HttpPost post = new HttpPost(postURL);
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        for (int i=0; i<arrBool.length; i++) {
        arrBool[i] = r.nextBoolean();
        String[] user = {"","","","","",""};
        if (arrBool[i] == true) {
            params.add(new BasicNameValuePair("user[i]", arrBool.toString()));
        }
        else if (arrBool[i] == false) {
            params.add(new BasicNameValuePair("user[i]", arrBool.toString()));
    }
        }
        UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
        post.setEntity(ent);
        HttpResponse responsePOST = client.execute(post);  
        HttpEntity resEntity = responsePOST.getEntity();  
        if (resEntity != null) {    
            System.out.printf("RESPONSE: ", EntityUtils.toString(resEntity));
        }
} catch (Exception e) {
    e.printStackTrace();
}
HttpClient=newdefaulthttpclient();
字符串姿势=”http://APP_NAME.appspot.com/listenforrestclient";
HttpPost=新的HttpPost(postrl);
List params=new ArrayList();
对于(int i=0;i您有
params.add(新的BasicNameValuePair(“用户[i]”,arrBool.toString());

但是您的密钥是字符串
“user[i]”
。请改用
string.format(“user[%d]”,i)
。 所以,改变

params.add(new BasicNameValuePair("user[i]", arrBool.toString()));

在servlet中,通过执行以下操作获取参数值:

for(int i = 0; i < ...){
    String value = request.getParameter(String.format("user[%d]", i);
    //process value  
}
for(int i=0;i<…){
String value=request.getParameter(String.format(“用户[%d]”,i);
//过程值
}
您有
params.add(新的BasicNameValuePair(“用户[i]”,arrBool.toString());

但是您的密钥是字符串
“user[i]”
。请改用
string.format(“user[%d]”,i)
。 所以,改变

params.add(new BasicNameValuePair("user[i]", arrBool.toString()));

在servlet中,通过执行以下操作获取参数值:

for(int i = 0; i < ...){
    String value = request.getParameter(String.format("user[%d]", i);
    //process value  
}
for(int i=0;i<…){
String value=request.getParameter(String.format(“用户[%d]”,i);
//过程值
}

您正在添加
params.add的新对象(新的BasicNameValuePair(“用户[i]”,arrBool.toString());
而不是尝试这样做

params.add(new BasicNameValuePair(user[i].toString(), arrBool.toString()));

在servlet中,首先需要从请求参数获取数组列表,对于数组列表中的每个值,创建一个具有相同BeanNameValuePair的对象,并使用
getValue()从中检索值
检查您是否在servlet中正确获取值首先检查您是否通过调试正确获取了ArrayList。

您正在添加
params.add的新对象(new BasicNameValuePair(“user[i]”,arrBool.toString());
而不是尝试这样做

params.add(new BasicNameValuePair(user[i].toString(), arrBool.toString()));


在servlet中,首先需要从请求参数获取数组列表,对于数组列表中的每个值,创建一个具有相同BeanNameValuePair的对象,并使用
getValue()从中检索值
检查您是否在servlet中正确获取值首先检查您是否通过调试正确获取了ArrayList。

感谢您的响应。但是我应该在哪里使用String.format(“用户[%d]”,I)?另外,我不知道如何将这些值发布到servlet,所以我做了那个循环。它应该是什么循环。再次感谢您的回复。而mmaa是空字符串数组,我使用字符串[]mmaa={“”、“”、“”、“”、“”、“”、“”};循环没有问题。您只需要与
BasicNameValuePair
使用的名称以及用于检索请求中的参数的名称保持一致。请参阅EditsHanks。我根据您的说法进行了尝试。以前它只是显示空值,或者有时显示一些垃圾值,如java.lang.@5444a4a。编辑后,它运行良好,但确实如此esn没有在servlet上显示任何输出谢谢您的响应。但是我应该在哪里使用String.format(“用户[%d]”,I)?而且我不知道如何将这些值发布到servlet,所以我做了那个循环。它应该是什么循环。再次感谢您的回复。mmaa是空字符串数组,我使用字符串[]mmaa={“”,“”,“”,“”,“”,“”};循环没有问题。您只需要与
BasicNameValuePair
使用的名称以及用于检索请求中的参数的名称保持一致。请参阅EditsHanks。我根据您的说法进行了尝试。以前它只是显示空值,或者有时显示一些垃圾值,如java.lang.@5444a4a。编辑后,它运行良好,但确实如此esn没有在servlet上显示任何输出您可以发布BasicNameValuePair()类或构造函数吗?您已经声明了
List params=new ArrayList();
但是您在params中添加的BasicNameValuePair对象是NameValuePair的BasicNameValuePair超类或其他什么?我可以发布BasicNameValuePair(“用户”,“可用”),但这只是字符串“user”的一个值“Available”。我想像一个用户数组一样发送。BasicNameValuePair是一个类,根据Apache HTTP客户端,它是NameValuePair的基本实现BasicNameValuePair的构造函数看起来像什么???构造函数将是BasicNameValuePair(字符串名称,字符串值)我想你想要的是一个NameValuePair列表,每一对都包含一个用户名作为键,布尔数据作为值。检查我的答案。你能发布BasicNameValuePair()类或构造函数吗?你已经声明了
list params=new ArrayList();
但是您在params中添加的BasicNameValuePair对象是NameValuePair的BasicNameValuePair超类还是什么?我可以发布BasicNameValuePair(“用户”,“可用”),但这只是字符串“用户”的一个值“可用”。我想像一个用户数组一样发送。BasicNameValuePair是一个类,根据Apache HTTP客户端,它是NameValuePair的基本实现。BasicNameValuePair的构造函数看起来像什么???构造函数将是BasicNameValuePair(字符串名称,字符串值)我想你想要的是一个NameValuePair列表,每一对都包含一个用户名作为键,布尔数据作为值形式???检查我的答案。谢谢,但它在servlet上仍然没有显示任何内容。我想它会起作用的。嘿,我已经编辑了我的答案检查你的检索,看看你是否得到ArrayList检查这是help谢谢Lakshmi。我理解这一点,但我仍然无法获得输出。您可以将您的servlet代码发布到从请求中获取实体对象的位置吗?谢谢,但它仍然没有在servlet上显示任何内容。我认为这会起作用。嘿,我编辑了我的答案检查您的检索,并首先查看您是否获得ArrayList检查此项对您有帮助谢谢Lakshmi。我理解这一点,但我仍然无法获得输出。您可以将servlet代码发布到从请求中获取实体对象的位置吗?