我正在尝试使用rust-http库,我想将它作为一个小项目的基础.
我不知道如何使用我无法安装的东西rustpkg install <remote_url>
.事实上,我今天发现rustpkg
现在已经弃用了.
如果我git clone
是库并运行适当的make
命令来构建它,我该如何在其他地方使用它?即我如何实际使用extern crate http
?
我需要将一个PDF文件发布到一个远程REST API,我不能为我的生活找到它.无论我做什么,服务器都会响应我尚未将对象与file
参数相关联.假设我有一个叫做PDF的文件test.pdf
.这是我到目前为止所做的事情:
// Using an HttpClientRequest named req
req.headers.contentType = new ContentType('application', 'x-www-form-urlencoded');
StringBuffer sb = new StringBuffer();
String fileData = new File('Test.pdf').readAsStringSync();
sb.write('file=$fileData');
req.write(sb.toString());
return req.close();
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了几乎我write()
对请求的数据的每个组合和编码,但无济于事.我尝试发送它codeUnits
,我已经尝试使用a编码UTF8.encode
,我尝试使用a编码它Latin1Codec
,一切.我很难过.
任何帮助将不胜感激.
我在Dart中有一个自定义数据类型,我想使用它进行迭代template repeat
.以下是有问题的数据类型的精简版本:
class Note {
String content;
Note(this.content);
}
class Notebook {
List<Note> notes;
Notebook(this.notes);
}
Run Code Online (Sandbox Code Playgroud)
我希望能够像这样迭代Note
s Notebook
:
<polymer-element name="x-notebook=view">
<ul>
<template repeat="{{note in notebook}}">
<li is="x-note-view" note="{{note}}></li>
</template>
</ul>
<script ...></script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
当然,问题是标准List
s可以通过这种方式迭代,但我不知道如何修改我的自定义Notebook
数据类型来做同样的事情.
其中一种方法就似乎工作是一个连接toList()
方法的Notebook
类:
List<Note> toList() => notes;
Run Code Online (Sandbox Code Playgroud)
但我希望在没有首先转换为a的情况下实现这一目标List
.
如果您使用的是飞镖HttpClient
(它提供了一个HttpClientRequest
),以从服务器请求到另一台服务器,据我可以告诉唯一可用HTTP方法是GET
和POST
(分别对应于post
/ postUrl
和get
/ getUrl
功能).还有办法制作PUT
和DELETE
要求吗?
通过HttpClient
类,dart:io
您可以向客户端请求添加凭据,如下所示:
var client = new HttpClient()
..addCredentials( ...creds... );
Run Code Online (Sandbox Code Playgroud)
问题是我需要多部分文件上传支持,这已经证明非常难以使用dart:io
.该http
库是多少这个更好.
问题是,据我所知,无法向http
库中的客户端请求添加凭据.如果我错了,事实上,有一种方法可以做到这一点,请告诉我.
我想采用一个返回a的函数,并将其Future[Option[String]]
与spray routing的onComplete
指令结合使用.但无论我做什么,我似乎无法让它发挥作用.
假设我有以下功能:
def expensiveOperation: Future[Option[String]] = { ... do stuff ... }
Run Code Online (Sandbox Code Playgroud)
然后我想定义我的一部分Route
:
onComplete(expensiveOperation) {
case Success(string) => complete(string)
case Failure(_) => complete("failure")
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在不编写单独的函数的情况下将其Future[Option[String]]
转换为基本函数Future[String]
?
我想使用Ruby中的正则表达式删除两个HTML标记中包含的所有内容以及标记本身.这是一个例子:
<tag>a bunch of stuff between the tags, no matter what it is</tag>
Run Code Online (Sandbox Code Playgroud)
基本上,我想用来gsub!
过滤掉这种类型的所有实例,如下所示:
text_file_contents.gsub!(/appropriate regex/, '')
Run Code Online (Sandbox Code Playgroud)
这样做有什么好的Ruby正则表达式?