【问题标题】:how to POST a url Kotlin如何发布 url Kotlin
【发布时间】:2019-09-17 06:42:05
【问题描述】:

获取类似“http://TEST/Data.php?Name=ABC&Number=12”的网址

想发这个网址,但打不开这个链接。

然后 Name 和 Number 列将变为 ABC & 12。

setOnClickListener:

btn_send.setOnClickListener{
            val i = Intent(Intent.ACTION_VIEW, Uri.parse("http://TEST/Data.php?Name=ABC&Number=12"))
            startActivity(i)

        }

这将在浏览器中打开链接。我怎样才能只发布这个网址而不打开它?

使用此代码,我的应用在单击按钮后崩溃:


btn_send.setOnClickListener{
            URL(url).readText()
        }

9/18 更新----------------------------------

尝试 OKHTTP 但什么也没发生


fun get() {
            val client = OkHttpClient()
            val url = URL("http://TEST/Data.php?Name=ABC&Number=12")

            val request = Request.Builder()
                .url(url)
                .build()
            OkHttpClient().newCall(request)

root.btn_submit.setOnClickListener {
            get()
        }

如果我将OkHttpClient().newCall(request) 更改为OkHttpClient().newCall(request).execute(),应用程序将崩溃

我认为当我向 HTTP 发送不安全的请求时会出现问题导致错误

【问题讨论】:

标签: android kotlin


【解决方案1】:

您不能直接在浏览器中打开 POST URL。

您必须使用以下库之一:

  • 改造
  • 凌空抽射
  • OkHttp

或者你可以像下面这样在 WebView 中打开它

WebView webview = new WebView(this);
setContentView(webview);
byte[] post = EncodingUtils.getBytes("Name=ABC&Number=12", "BASE64");
webview.postUrl("http://TEST/Data.php", post);

将上面的代码转换成 Kotlin

【讨论】:

  • 创建一个新的Activity,然后在xml中创建一个Webview,然后在kt文件中连接那个webview,如果仍然出现错误,然后检查你的URL和POSTMAN中的post字段,检查POST请求是否在服务器端工作
  • 我已经更新了OKHTTP的情况请看一下谢谢
  • 使用OKHTTP解决不安全的HTTP REQUSET问题
  • 现在,POST 成功
猜你喜欢
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多