Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调度0.9的基本用法

调度0.9的基本用法
EN

Stack Overflow用户
提问于 2012-09-09 11:07:05
回答 2查看 6.2K关注 0票数 9

我想发布到URL,设置查询参数和头,并在正文中传递一个原始字符串。然后,我希望执行请求并获取输出字符串,以便将其转换为JSON。我还希望异常处理能够响应不同类型的错误(并处理重定向)。

但是Dispatp0.9文档编写得很糟糕,用文档版本破坏了API,而且非常古怪,所以我不能想出一个完整的解决方案。我是,完全卡住了,所以我要求很多。

这是我所能想到的全部,但是设置查询参数是很奇怪的:

代码语言:javascript
运行
AI代码解释
复制
val solr = host("localhost", 8983)
val req  = solr / "update" / "json" 
    setQueryParameters( Map( "commit" -> "true")) 
    setHeader( "Content-type", "application/json")
    setBody( a)

但是,设置查询参数会给我一个严重的错误:

代码语言:javascript
运行
AI代码解释
复制
<console>:14: error: type mismatch;
 found   : scala.collection.immutable.Map[java.lang.String,java.lang.String]
 required: com.ning.http.client.FluentStringsMap
       val req  = solr / "update" / "json"  setQueryParameters( Map( "commit" -> "true"))

请帮助完全设置请求: HTTPS、重定向、查询参数、标头和POST方法。

还可以帮助执行请求(同步地,我希望这样做),根据响应代码(200、301、302、400、500)获取主体(和头)和分支。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-09 13:23:12

你离我不远。以下应适用于您的请求定义:

代码语言:javascript
运行
AI代码解释
复制
import dispatch._

val params = Map("commit" -> "true")
val headers = Map("Content-type" -> "application/json")

val solr = host("localhost", 8983)

val req = solr / "update" / "json" << a <<? params <:< headers

或者,不那么动手术:

代码语言:javascript
运行
AI代码解释
复制
val req = url("http://localhost:8983/update/json").POST
  .setBody(a)
  .addQueryParameter("commit", "true")
  .addHeader("Content-type", "application/json")

如果您想要使用HTTPS,可以在其中添加一个.secure

您可以得到这样的承诺(实质上表示延迟请求操作的结果):

代码语言:javascript
运行
AI代码解释
复制
val result = Http(req OK as.String).either

然后像这样使用它,例如:

代码语言:javascript
运行
AI代码解释
复制
result() match {
  case Right(content)         => println("Content: " + content)
  case Left(StatusCode(404))  => println("Not found")
  case Left(StatusCode(code)) => println("Some other code: " + code.toString)
}

虽然我同意0.9 documentation在某些地方是稀疏的,但它确实提供了一个非常有用的解释,说明了如何使用承诺来处理异步请求操作。

OP的新增部分:这个位为我完成了这个答案。它以一种简单的、阻塞的方式获得响应。

代码语言:javascript
运行
AI代码解释
复制
val response = Http(req)()
val body response.getResponseBody
票数 15
EN

Stack Overflow用户

发布于 2012-09-09 12:18:01

我在Dispatch 0.9.1的简单用例中使用了POST,设置如下:

代码语言:javascript
运行
AI代码解释
复制
val SERVICES_URL = "http://myhost/mycontext"

val postFields: Map[String, String] = ...
val request = url(SERVICES_URL) << postFields OK as.String
val post = Http(request)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12342062

复制
相关文章
参与者模式
JavaScript中的参与者模式,就是在特定的作用域中执行给定的函数,并将参数原封不动的传递,参与者模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的技巧型设计模式。
WindRunnerMax
2020/12/25
6300
周志华Deep Forrest论文参与者答网友问,或6月1日开源
【新智元导读】新智元之前发布周志华老师的Deep Forrest论文引起了广泛关注和讨论。本文作者Ji Feng正是该论文的参与者,他在知乎上对这篇论文的评论做了几点评价,例如:没有BP到底行不行?端到端不是模型能够work的必要条件。 【Ji Feng】:作为论文参与者之一,我做的很有限,在这里擅自谈谈我个人对周老师gcForest的一点愚钝看法。这里声明:所有观点仅仅代表我个人。 先说几点个人的结论: 1. 这是一个Deep Model,只不过building blocks是决策树。 这篇工作不是来
新智元
2018/03/28
7330
设计模式:参与者风格
参与者风格将问题分解为问题域相关的对象,每个对象中存在一个队列,并且暴露唯一的send接口用于给队列添加消息。对象轮循队列,并根据取出的不同消息执行不同的操作。
超级大猪
2020/09/18
2650
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.5K0
nuxt 为单独的页面或组件 注入js
代码如下 head() { return { script: [ { charset: 'utf-8', src:'htt
拿我格子衫来
2022/01/24
1.6K0
nuxt 为单独的页面或组件 注入js
主要参与者解决开源许可问题
红帽,谷歌,Facebook和IBM表示,他们将在最新的GNU通用公共许可协议GPLv3中将错误标准应用于其所有开源许可,甚至包括根据较早的GPL协议授予的许可。
田冠宇
2020/12/25
6210
Vue动画之多个元素或组件的动画效果
        前面我们看的是单个元素的过渡效果,我们看一下多个元素或者组件的过渡
十月梦想
2018/10/09
1.9K0
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
我们的Amazon Alexa虚拟设备项目旨在提供将Alexa添加到任何Linux设备(包括Raspberry Pi板等嵌入式系统)的功能。
用户4122690
2020/03/14
1.6K0
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
组件分享之后端组件——基于Golang实现的以并行线程计算或分发到机器集群组件GLOW
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/06/27
5100
组件分享之后端组件——基于Golang实现的以并行线程计算或分发到机器集群组件GLOW
Vue父子组件之间的传值及父子组件之间相互调用属性或方法
父组件向子组件传值是通过属性的方式 传值,传的值可以是任意类型,甚至可以是父组件的方法或者父组件对象本身。为方便理解可以简单将父组件向子组件传值按以下步骤实现。
赵云龙龙
2020/02/24
16.5K0
IDC转型成为云服务重要参与者
“云”是生活在数据中心的,依赖于数据中心存在。在当今不断变化的环境中,更多业务和数据放在数据中心,现在数据中心几乎被用于存储所有的东西。事实上,今天几乎所有的新技术和应用部署都需要一个位置,这个位置就是数据中心。技术先进的数据中心能够为您的组织提供安全的云计算服务。 虽然越来越多的工作负载是基于云的,提到云总是和虚拟化关联在一起,但在数据中心中仍然有一个非常真实的物理世界,一排排的机架和大大小小的服务器来存储和管理所有的信息。在为云计算服务规划和构建数据中心时管理者必须考虑以下几个重要的细节: 物理资源
静一
2018/03/23
1.3K0
IDC转型成为云服务重要参与者
RPA生态运转体系之参与者的角色配置
众所周知,在RPA生态中,RPA厂商主要负责提供RPA技术和服务,与其他生态参与者提供的技术、产品、服务、方案及渠道共同服务企业客户。
蕉黄
2019/12/19
4130
RPA生态运转体系之参与者的角色配置
「SQL面试题库」 No_98 活动参与者
可以以任何顺序返回结果,Activities 表的每项活动的参与者都来自 Friends 表
不吃西红柿
2023/10/16
1440
手机chrome禁止加载图片_com组件未加载或被禁止
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
8490
LeetCode MySQL 1355. 活动参与者(any函数)
可以以任何顺序返回结果,Activities 表的每项活动的参与者都来自 Friends 表
Michael阿明
2021/02/19
3150
组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/05/13
5170
组件分享之后端组件——对其GORM增加多数据库支持功能的组件dbresolver
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/05/15
5750
组件分享之后端组件——docconv组件将文档转换为纯文本
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/03/06
7710
点击加载更多

相似问题

从独立实体更新DB的正确方法是什么?

13

用实体更新列表的正确方法是什么?

20

如何在ASP.NET MVC中通过AJAX正确调用POST操作方法

11

使用实体框架添加或更新实体的正确方法是什么

14

使用NHibernate以正确的方式更新实体集合

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档