繁体   English   中英

将javascript代码转换为android代码-如何在POST请求中添加引荐来源网址?

[英]Converting javascript code to android code - how to add referrer in POST request?

我的网站上有这个Java脚本代码,当有人订阅我的新闻时该代码就会执行。 基本上什么都没有,只是发布请求。 这是一段代码。

function es_submit_request(url, parameters, es_widget_form) {
http_req = false;

http_req.onreadystatechange = function() {eemail_submitresult(es_widget_form)}; // Passing the form to the submit request
http_req.open('POST', url, true);
http_req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_req.send(parameters);
}

是否可以从我的android应用程序代码中调用此post方法来订阅某人的新闻通讯?

在这里尝试过此代码但无法正常工作。

当我调试我的js代码时,变量值以

parameters = "es_email=fgnfg@dgd.com&es_name=&es_group=&timestamp=&action=0.9901232281510463"
url = "http://thetechguru.in/?es=subscribe"

如果有人可以帮助我提供此代码,我将不胜感激。 我宁愿不为此使用任何库,因为我不想为这么小的事情带来开销。 (仅适用于我的应用中的一个网络通话)

这是我正在尝试的代码,但是没有用。

String urlString = "http://www.thetechguru.in/?es=subscribe&es_email=fsdsf@dgd.com&es_name=&es_group=&timestamp=&action=0.9901232281510463";

        String resultToDisplay = "";

        InputStream in = null;
        try {

            URL url = new URL(urlString);

            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

            in = new BufferedInputStream(urlConnection.getInputStream());


        } catch (Exception e) {

            System.out.println(e.getMessage());

            return e.getMessage();

        }

        try {
            resultToDisplay = in.toString();//IOUtils.toString(in, "UTF-8");
            //to [convert][1] byte stream to a string
            Log.v("Response",resultToDisplay);
        } catch (Exception e) {
            e.printStackTrace();
        }

代码执行,但是什么也没有发生,列表中未添加电子邮件ID

您的Application Manifest文件是什么样的? 如果您的应用程序没有访问互联网的权限,则不会。 尝试将<uses-permission android:name="android.permission.INTERNET" />到您的AndroidMainfest.xml文件中(在<manifest>标记内部,但在<application>标记之前)。

日志中是否显示任何内容(仅在设置为verbose时才会显示log.v)? 如果是这样,请分享显示的内容。 日志指南

如果没有,es_email = fsdsf @ dgd.com电子邮件已经在列表中了吗? 确保您正在更新按钮上的URLstring的es_email参数

我终于解决了这个问题。 即使我使用发送POST请求的正确代码,也无法订阅电子邮件ID。 我检查了请求的HTTP响应,发现它返回错误“意外错误”。 我检查了服务器代码,并在php代码中检查了HTTP_REFERER。 因此做了一些研究,并在我的java请求中添加了REFERER,瞧,成功了!

URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
 //Set to POST
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setDoInput(true);
//Added referer
connection.addRequestProperty("REFERER", "http://thetechguru.in");
connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
connection.setReadTimeout(10000);
Writer writer = new OutputStreamWriter(connection.getOutputStream());
writer.write(query);
writer.flush();
writer.close();

我希望它可以帮助某人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM