如何从http服务获得准确响应

在我的应用程序中,我在我的应用程序中使用 http 服务,我必须使用一个编辑文本和两个按钮(预览按钮、发送按钮)。当我单击预览按钮时,http 请求将与编辑文本的内容一起建立。我想在对话框中显示响应和编辑文本内容。

此网址:http://invitations.in/events/register/credit.php?template= ” + sms_content

这是回应:

{“学分”:2}

这是我的代码:

 editText = (EditText)findViewById(R.id.sms_content);

        preview_btn = (Button) findViewById(R.id.preview_btn);
        send_btn = (Button) findViewById(R.id.send_btn);

        send_btn.setVisibility(View.GONE);
        preview_btn.setVisibility(View.VISIBLE);

        preview_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                sms_content = editText.getText().toString();

                // get prompts.xml view
                LayoutInflater li = LayoutInflater.from(context);
                View promptsView = li.inflate(R.layout.prompts, null);

                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);

                // set prompts.xml to alertdialog builder
                alertDialogBuilder.setView(promptsView);

                 TextView preview = (TextView) promptsView
                        .findViewById(R.id.preview);
                 TextView smscount = (TextView) promptsView.findViewById(R.id.count_credits);
                 TextView numofcont = (TextView) promptsView.findViewById(R.id.no_ofcont);

                Thread thread = new Thread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            try {
                                sms_content = URLEncoder.encode(sms_content, "UTF-8");
                            } catch (UnsupportedEncodingException e) {
                                e.printStackTrace();
                            }
                            try {
                                HttpClient httpClient = new DefaultHttpClient();
                                HttpGet httpPost = new HttpGet("http://v.leonas.in/events/register/credit.php?template="+sms_content);
                                HttpResponse response = httpClient.execute(httpPost);
                                HttpEntity entity = response.getEntity();
                                String responseString = EntityUtils.toString(entity);
                                JSONObject jsonObject = new JSONObject(responseString);
                                creditspersms = jsonObject.getInt("credits");
                                System.out.println(creditspersms);

                            } catch (JSONException e) {
                                e.printStackTrace();
                            } catch (ClientProtocolException e) {
                                e.printStackTrace();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                });
                thread.start();

                preview.setText(sms_content);
                smscount.setText(String.valueOf(creditspersms * contnum));
                numofcont.setText(Integer.toString(contnum));

                // set dialog message
                alertDialogBuilder
                        .setCancelable(false)
                        .setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int id) {
                                        // get user input and set it to result
                                        // edit text
                                        editText.setText(editText.getText());
                                        send_btn.setVisibility(View.VISIBLE);
                                        preview_btn.setVisibility(View.GONE);
                                    }
                                })
                        .setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int id) {
                                        dialog.cancel();
                                    }
                                });

                // create alert dialog
                AlertDialog alertDialog = alertDialogBuilder.create();
                // show it
                alertDialog.show();
            }
        });

在这里,当我单击预览按钮时,它正在点击 URL 并从中获得响应。但是在警报对话框中,响应显示为 0。如果我取消对话框并再次单击预览按钮,它会给出我想要的确切输出。但我想在我第一次点击时出现这个,请帮我解决这个问题。

希特什·萨尔萨瓦

你可以尝试像下面的代码:

final Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {

                try {
                    try {
                        sms_content = URLEncoder.encode(sms_content, "UTF-8");
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    try {
                        HttpClient httpClient = new DefaultHttpClient();
                        HttpGet httpPost = new HttpGet("http://v.leonas.in/events/register/credit.php?template=" + sms_content);
                        HttpResponse response = httpClient.execute(httpPost);
                        HttpEntity entity = response.getEntity();
                        String responseString = EntityUtils.toString(entity);
                        JSONObject jsonObject = new JSONObject(responseString);
                        creditspersms = jsonObject.getInt("credits");
                        System.out.println(creditspersms);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    } catch (ClientProtocolException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

                MainActivity.this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        preview.setText(sms_content);
                        smscount.setText(String.valueOf(creditspersms * contnum));
                        numofcont.setText(Integer.toString(contnum));

                        // set dialog message
                        alertDialogBuilder
                                .setCancelable(false)
                                .setPositiveButton("OK",
                                        new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int id) {
                                                // get user input and set it to result
                                                // edit text
                                                editText.setText(editText.getText());
                                                send_btn.setVisibility(View.VISIBLE);
                                                preview_btn.setVisibility(View.GONE);
                                            }
                                        })
                                .setNegativeButton("Cancel",
                                        new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int id) {
                                                dialog.cancel();
                                            }
                                        });

                        // create alert dialog
                        AlertDialog alertDialog = alertDialogBuilder.create();
                        // show it
                        alertDialog.show();
                    }
                });

            }
        });
        thread.start();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得http请求的响应

来自分类Dev

如何获得响应的HTTP标头?

来自分类Dev

如何获得BigInteger的准确长度?

来自分类Dev

无法获得$ http响应

来自分类Dev

无法获得$ http响应

来自分类Dev

如何从node.js服务器获得简单响应?

来自分类Dev

从服务器获得响应后如何停止进度栏

来自分类Dev

如何获得Azure移动服务的响应以确认发送?

来自分类Dev

如何从node.js服务器获得简单响应?

来自分类Dev

放置后如何从philips hue bridge获得http json响应

来自分类Dev

AngularJS:-如何使用$ http.get()获得功能的响应?

来自分类Dev

放置后如何从philips hue bridge获得http json响应

来自分类Dev

获得$ http服务并致电

来自分类Dev

http发布并获得服务

来自分类Dev

http发布并获得服务

来自分类Dev

如何获得不准确计算的例外?

来自分类Dev

如何从opencv获得准确的idft结果?

来自分类Dev

如何使用Android获得最准确的时间?

来自分类Dev

如何获得最准确的用户位置

来自分类Dev

如何从opencv获得准确的idft结果?

来自分类Dev

如何获得std :: string的准确长度?

来自分类Dev

如何从头到尾获得准确的时间

来自分类Dev

如何获得准确的音频时基

来自分类Dev

Twitter API (Tweepy) 如何获得准确的术语

来自分类Dev

如何使用 fetch 过滤以获得准确的结果?

来自分类Dev

如何从setnextrequest获得响应:

来自分类Dev

Http帖子获得Android响应

来自分类Dev

无法获得 HTTP 201 响应

来自分类Dev

快速在服务器端发生异常时无法获得http响应