当前位置: 首页 > 知识库问答 >
问题:

JAVA与服务器php通信

茹照
2023-03-14

我想写一个非常简单的API。当我使用邮差API时。我想创建android应用程序,但我的应用程序崩溃了。为什么?哪里是错误

OkHttpClient zapytanie = new OkHttpClient();
                RequestBody requestBody = new FormBody.Builder()
                        .add("login", "some_email")
                        .add("password", "some_password")
                        .build();
                final Request request = new Request.Builder()
                        .header("Content-Type", "application/x-www-form-urlencoded")
                        .url("https://garlic-dragon.000webhostapp.com/registration.php")
                        .post(requestBody)
                        .build();
                try {
                    Response response = zapytanie.newCall(request).execute();
                    Toast.makeText(getApplicationContext(), "This is my success!",
                            Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    //e.printStackTrace();
                    Toast.makeText(getApplicationContext(), e.toString(),
                            Toast.LENGTH_LONG).show();
                }

共有1个答案

殷学
2023-03-14

错误必须是NetworkonMaintHreadException,这是因为您不能在主线程上执行同步HTTP。使用enqueue not execute异步运行请求。

     OkHttpClient zapytanie = new OkHttpClient();
     RequestBody requestBody = new FormBody.Builder()
                          .add("login", "some_email")
                          .add("password", "some_password")
                          .build();
     final Request request = new Request.Builder()
                          .header("Content-Type", "application/x-www-form-urlencoded")
                          .url("https://garlic-dragon.000webhostapp.com/registration.php")
                          .post(requestBody)
                          .build();
     try {
          Response response = zapytanie.newCall(request).enqueue(new Callback() {
          @Override
            public void onFailure(Request request, Throwable throwable) {
             // Something went wrong
            }

            @Override public void onResponse(Response response) throws IOException {
                 if (response.isSuccessful()) {
                  // Do what you want to do with the response.
                 } else {
                  // Request not successful
                 }
            }
           });
     } catch (IOException e) {
          //e.printStackTrace();
          Toast.makeText(getApplicationContext(), e.toString(),
           Toast.LENGTH_LONG).show();
     } 

我推荐使用类似于reverfit的库来进行更容易的API调用。

 类似资料:
  • Web主要围绕HTTP的请求/响应范例构建。客户端加载网页,然后在用户点击下一页之前没有任何操作。大约在2005年,AJAX开始让网络感觉更有活力。仍然,所有HTTP通信都由客户端引导,这需要用户交互或定期轮询以从服务器加载新数据。 使服务器能够在知道新数据可用的瞬间将数据发送到客户端的技术已存在很长时间了。它们的名称如“Push”或“Comet”。 将套接字引入Web Websocket规范定义

  • 现在我的ServerSocket是这样的 一切正常,客户端连接,发送一些数据,服务器读取它,但我的问题是如何从我的服务器发送消息到所有的客户端?我目前保存客户端上的ArrayList,所以我可以只是循环,ArrayList打开一个作家和刷新它,但我想发送的数据,我得到我的ClientConnection类 我应该如何处理这个代码?在服务器类上完成的所有操作?或

  • 我有一个关于SSLConnection的问题,在java中,我为客户端编写了下面的代码(这个应用程序必须连接到服务器,我有支持ssl的服务器),但我得到了这样的错误“javax.net.ssl.sslException:Connection Hays Shutdown:javax.net.ssl.sslhandShakeException:sun.security.validator.valida

  • 我有这个代码可以在eclipse中与android Studio中的客户端通信服务器,我使用套接字,客户端向服务器发送消息,服务器读取该消息并确定一切正常,但当服务器向客户端发送消息时,客户端不强制任何东西;这是代码 还有这个 此代码是服务器代码的一部分,如果您需要客户端代码(Android Studio),请告诉我。 我需要帮助拜托

  • 下面是我的PHP代码,我用它来测试谷歌日历中的事件插入。 我原以为我可以只使用一个API键,但谷歌似乎有一种复杂的方式来实现OAUTH,我就是搞不懂。我可以在API开发者控制台中看到我的所有403错误。 是否有人拥有将简单事件插入我的日历的工作代码。 背景: 我将从paypal收到一个IPN(完成),这将触发这个脚本,它将在我的日历中插入一个事件,而不是用户。有谁能帮我而不让我参考谷歌开发者文档吗

  • 我正在尝试与CUPS打印服务器通信,该服务器的所有连接都设置了“需要加密”。这意味着,当您尝试建立到它的连接时,它会要求将连接升级到TLS加密的连接,而Cups4j和Jspi似乎都无法处理它。 有没有办法从Java应用程序(使用这些库或其他库)连接到这样的服务器?