【问题标题】:Can HttpRequestBase be used in Dart / Flutter?HttpRequestBase 可以在 Dart/Flutter 中使用吗?
【发布时间】:2020-05-18 12:25:57
【问题描述】:

我正在尝试在 Dart/Flutter 中编写这个 java 代码。它是来自名为 implementation "cz.msebera.android:httpclient:4.4.1.2" 的库的连接 HttpRequestBase

Java 示例:在一个名为 HttpPut.java 的活动中,有一个对该库的调用。这是我想对 Dart 进行的具体部分。

protected HttpRequestBase getRequestBase(Request request) throws UnsupportedEncodingException {
        cz.msebera.android.httpclient.client.methods.HttpPut httpPost = new cz.msebera.android.httpclient.client.methods.HttpPut(
                request.getResource()
        );
        StringEntity entity = new StringEntity(request.getParameters(), "UTF-8");
        entity.setContentType(new BasicHeader("Content-Type", "application/json"));
        httpPost.setEntity(entity);
        return httpPost;
    }

Request 类包含以下内容:

import java.util.Collection;

public interface Request {
    String getResource();

    String getParameters();

    Collection<String> getHeaders();

我在 Dart 中尝试的是调用库 http: ^ 0.12.1 但这并不是我所需要的。因为虽然我可以做到,但在这种情况下 httpPut(...),我无法执行以下步骤,例如 StringEntity。您将如何解决这些问题?

【问题讨论】:

    标签: java flutter dart


    【解决方案1】:

    虽然 Flutter does allow you to insert platform-specific code 在您的应用程序中,但在这种情况下,这可能不是您想要的。所涉及的类/方法不会相同,但您应该能够使用 Dart 中的其他类/方法实现您的 Android 代码的功能。查看HttpClient class。您的代码可能与此类似(尽管此 sn-p 缺少 request.getParameters(),因为我不确定会发生什么变化):

    Future<HttpClientRequest> getRequestBase(Request request) async {
      HttpClientRequest httpRequest = await HttpClient().putUrl(Uri.parse(request.getResource()));
      httpRequest.headers.contentType = ContentType('aplication', 'json', charset: 'UTF-8');
      return httpRequest;
    }
    

    然后,当您想在代码中实际发送请求并获得响应时,您可以这样做

    HttpClientRequest requestBase = await getRequestBase(request);
    HttpClientResponse response = await requestBase.close();
    

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2019-10-02
      • 1970-01-01
      • 2020-08-09
      • 2014-08-29
      相关资源
      最近更新 更多