使用JMS作为请求/响应服务有各种实现.我想知道理想的实现.以下是这些不同的实现.
所有请求消息都发布到指定回复队列的单个请求队列中.该服务使用请求消息并将消息发布回动态回复队列.
所有请求消息都发布到单个请求队列中,在jms属性中指定唯一ID.唯一ID存储在本地.服务使用请求消息并将消息发布回响应队列.单个响应使用者将使用该消息并根据唯一ID进行适当操作.
所有请求消息都发布到单个请求队列中,在jms属性中指定唯一ID.该服务使用请求消息,并在jms属性中将具有相同唯一ID的消息发布回主题.响应的使用者将设置消息选择器以仅选择包含唯一ID的消息.
有谁知道其他实现?哪些实现是使用JMS作为请求/响应服务的理想解决方案?
我正在使用某个网站提供的应用程序定期从网站上收集一些数据,比如每次30秒.然后将返回的响应记录在数据库中.
我通过导入请求和写代码来使用模块化来捕获异常.主要功能的代码如下:
def get_response(self):
try:
response = requests.get(self.request_url)
if response.status_code == 200:
return response.json()
except Exception as e:
msg = "Exception is:\n %s \n" % e
print msg
Run Code Online (Sandbox Code Playgroud)
上面的功能在前几个小时内运行良好.该函数还可以从以下一些例外中恢复:('连接中止.',BadStatusLine("''",))
或('连接中止.',错误(10053,''))它省略了异常(通过记录在数据库中为空并且继续获得下一期的响应.
但是,在绑定10054错误时,该功能停止工作.
Exception is:
('Connection aborted.', error(10054, ''))
Run Code Online (Sandbox Code Playgroud)
我检查数据库,发现在10054错误发生之后所有响应都是空的.我首先猜测网站可能会崩溃,因此没有收到回复.但是当我手动重启该功能时,它会再次开始响应.所以这与网站的细分无关.
我在stackoverflow中搜索并找到:Errno 10054远程主机强行关闭现有连接.但我不知道如何解决它.
你能否解决这个问题?(理想情况下)或提供一些解决方案来重启功能而无需手动重启?(看起来我重新启动功能后再次运行.)
提前致谢.
我正在使用 Firefox,想要分析页面的请求/响应。
有没有办法在进入/打开页面(自动打开第二个选项卡)之前打开开发人员工具( firefox-developer-tools ) - 即“网络”。
否则将无法正确跟踪流量。
当我使用 cy.request() 命令时,Cypress 加载响应正文时遇到问题。
在我们的应用程序中,当填写并提交表单时,它会发布,并且响应正文是新页面。
当我尝试在赛普拉斯中执行时,是以编程方式填写表格。因此,我设置了一个 cy.request() 命令,其正文填充了表单字段,这与手动填写时发生的情况相同。当我运行该命令时,我可以查看控制台并看到返回了正确的正文,但新文档页面未加载。所以我只能坐在旧的空表单页面上。
cy.request({
url: "company-webpage-form-url.com",
method: "POST",
form: true,
body: {
first_name: "first_name",
last_name: "last_name",
company_name: "company_name",
address1: "address1",
address2: "address2",
city: "city",
state: "NY",
zip: "13903",
country: "US",
phone_number: "607-555-5555",
phone_ext: "555",
fax_number: "fax_number",
fax_ext: "fax_ext",
email: "developer@company.com",
email_2: "developer@company.com",
user_data: "Continue"
}
});
Run Code Online (Sandbox Code Playgroud)
所有数据都是正确的,我得到了正确的响应正文,但我只能在控制台中看到它。我不知道如何加载它,就像我提交表单时一样。我现在得到的只是 200 响应,测试结束。
我尝试立即访问下一个 URL,但收到一条错误消息,指出该 URL 的页面不存在。我尝试在 POST 之后单击提交按钮,但这只会导致提交空表单,从而导致验证错误。
我不知道如何让 cypress 加载响应正文,该正文采用文档的形式(新页面)。有人有什么建议吗?
编辑:我应该补充一点 - 我希望通过 POST 填写表格的原因是因为我需要填写该表格来测试某些选项是否有效。我有一个测试可以确保表单字段和提交按要求工作,但对于需要在此表单另一侧检查的 30 多个选项,我想遵循赛普拉斯的最佳实践,即不要每次都手动填写表单单次(他们展示了在网站上登录的示例)。
我正在使用 Axios 发出发布请求,此调用在响应标头和正文中返回数据。在标头中,它返回一个x-auth-token,我想获取此令牌的值,但它返回:
undefined is not an object
Run Code Online (Sandbox Code Playgroud)
这是我的做法:
undefined is not an object
Run Code Online (Sandbox Code Playgroud) 我认为这会相当简单,但我很难成功发送响应,然后修改存储在服务工作线程内的缓存中的克隆响应。
最终,我想将缓存的数据附加到获取的时间和日期。我正在使用我的服务工作人员首先从网络获取此数据,如果数据不可用,则回退到缓存。
这是我的服务人员的代码
event.respondWith(
fetch(event.request)
.then(function(e) {
console.log('response', e)
var responseToCache = e.clone();
responseToCache.json().then(function(data) {
var today = new Date();
var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
data.cached = { date: date, time: time }
return data
})
// var init = {
// status: response.status,
// statusText: response.statusText,
// headers: { 'X-Foo': 'My Custom Header' }
// };
// response.headers.forEach(function(v, …Run Code Online (Sandbox Code Playgroud) javascript response httpresponse service-worker service-worker-events
我正在使用 axios 向diro发送请求以创建具有端点的用户/user/create。
但是,我不断收到这样的错误:
Error response: { Error: certificate has expired
at TLSSocket.onConnectSecure (_tls_wrap.js:1055:34)
at TLSSocket.emit (events.js:198:13)
at TLSSocket.EventEmitter.emit (domain.js:448:20)
at TLSSocket._finishInit (_tls_wrap.js:633:8)
Run Code Online (Sandbox Code Playgroud)
这是我的要求:
const DIRO_API_KEY = ******
createUserToDiro = ({
phone,
first_name,
last_name,
birth_date,
mcc_code
}) => {
const mobile = phone;
const firstname = first_name;
const lastname = last_name;
const dob = formatDiroDob(birth_date);
const mcc = mcc_code;
axios.post('https://api.dirolabs.com/user/create'), {
firstname,
lastname,
dob,
mobile,
mcc,
apikey: DIRO_API_KEY
})
.then(rs => console.log('Success response:', rs))
.catch(err => console.log('Error …Run Code Online (Sandbox Code Playgroud) 我一直在使用503 服务不可用或停机进行维护。
然而,一些 http 客户端库(即 axios)将 503 视为可重试错误。
如果由于高负载而产生响应,则重试是有意义的,但 503 也适合功能切换情况。
对人们使用的其他代码有什么建议吗?
我的目标是向我的网页返回一条消息,在那里显示它,但不仅仅是消息,返回的值包含错误页面的消息和 html 代码!
这是 Symfony 捆绑操作路由和函数定义:
/**
* @Route("/Utilities/getMessages/{callSign}/{loginDateTime}",
* defaults={"callSign"="","loginDateTime"=""})
*
* @return: json string.
*
*/
public function getMessagesAction( $callSign, $loginDateTime ) { ... }
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码将消息结果返回给 ajax 调用:
由 Ajax 调用调用的服务器端 PHP 代码......
$message = 'Some message to be displayed.';
// Return to the page and display the message ...
return new Response( $message ); // Inspecting $message shows only
// 'Some message to be displayed.'
Run Code Online (Sandbox Code Playgroud)
调用上述代码并接收响应的客户端 JavaScript 代码:
$.ajax( { // Send form data to the same …Run Code Online (Sandbox Code Playgroud) 我想以 selenium-wire 中的字符串形式获取响应主体,最终将其解析为 JSON。
response.body在 selenium-wire 中给出字节字符串。我尝试解码它,response.body.decode('utf-8')但这给出了解码错误。
有人可以帮我弄这个吗?我对这两种解决方案都很好:
response ×10
javascript ×3
axios ×2
httpresponse ×2
request ×2
ajax ×1
api-design ×1
connection ×1
cypress ×1
firefox ×1
http ×1
java ×1
jms ×1
node.js ×1
php ×1
post ×1
promise ×1
python ×1
rest ×1
selenium ×1
seleniumwire ×1
service ×1
symfony-2.8 ×1
utf-8 ×1