我必须在asp 5中间件中设置原因短语,不仅是http响应消息的状态码,而且找不到任何方法。在StatusCode该物业Microsoft.AspNet.Http.HttpResponse类是int只修改的状态代码属性,但不是这个原因文本。
我知道,原因是根据状态代码自动设置的,但就我而言,我必须将其设置为自定义值。根据HTTP RFC 2616可以确定:
[..]此处列出的原因短语仅是建议-在不影响协议的情况下,可以将它们替换为本地等效项。[..]
我目前正在使用ASP 5框架的beta-8版本。
我已经构建了一个 API,其中客户端将指示服务器更新数据库中的某个实体,并且它必须容纳多个用户尝试对同一数据实体进行操作,可能是在“同时”。
这是一个分布式用户竞争条件问题。(类似于 Wordpress 在其他用户编辑博客文章时处理“锁定”博客文章的方式。)
示例数据实体
{
versionID : 12345,
type : "building",
name : "The CN Tower"
}
Run Code Online (Sandbox Code Playgroud)
操作数据实体
例如,客户端将告诉服务器任何给定实体update的name属性。
为了处理试图更改同一实体的多个用户 - 不会让用户意外覆盖彼此的更新 - 每个用户必须随其update请求一起发送versionID(也可能称为 a stateID)它从服务器获取的数据库实体加载到 UI 中(或者在 CLI 应用程序的情况下存储在客户端)。
这样,如果Client A之前更新过建筑物Client B,服务器将能够告知Client B他们的更新请求已失败,因为他们尝试更新的建筑物不是数据库中此类记录的当前(规范)状态。
问题
当任何用户尝试更新已由其他用户在此期间更新的数据库记录时,来自服务器的正确 http状态代码是什么?
调用以下代码后,getResponseCode()返回远程HTTP服务器返回的响应代码.此代码有简短说明.如何在Android中以编程方式获取其描述?
URL myurl = new URL(url);
URLConnection connection = myurl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
Run Code Online (Sandbox Code Playgroud)
UPDATE
httpConnection.getResponseMessage() 有时返回"not found",而responseCode有效
我已经使用响应断言在 jmeter 中将响应代码 422 作为成功的 http 请求,并且它有效。但是 jmeter 将响应代码 200 分配为失败的 http 请求。
我在 Pattern 中添加 422 和 200 进行测试,但 jmeter 仅将响应代码 200 断言为成功的 http 请求。
如何将响应代码 200 或 422 指定为成功的 http 请求?
问候, 斯特菲奥
我试图从AWS Lambda函数返回一个对象而不是一个简单的字符串.
// ...
context.fail({
"email": "Email address is too short",
"firstname": "First name is too short"
});
// ...
Run Code Online (Sandbox Code Playgroud)
我已经使用了errorMessage映射错误响应状态代码,这很好:
// ...
context.fail('That "username" has already been taken.');
// ...
Run Code Online (Sandbox Code Playgroud)
我只是想尝试做一些AWS API Gateway无法承受的事情吗?
我也已经发现这篇文章有所帮助:有没有办法更改Amazon API Gateway返回的http状态代码?.
http amazon-web-services http-response-codes aws-lambda aws-api-gateway
我正在使用PHP中的curl来检查请求某些文件时的HTTP代码,我正在尝试让我的速度更快运行所以我想知道是否有办法让它获取HTTP代码而不实际获取网页远程主机
当我需要检查响应代码是否是成功代码之一(2xx)时,我通常创建一个整数数组并查看它。例如,
public static final int[] SUCCESS_STATUS_CODES = new int[]{
200, 201, 202, 203, 204, 205, 206, 207, 208, 226
};
Run Code Online (Sandbox Code Playgroud)
我对其他响应代码执行相同的操作。
我想知道是否有一个内置对象已经保存了所有这些代码并定期更新它们供我使用?
例如,
//pseudo code
if(responseCode is from success 2xx category)
do something
else if (responseCode is from error 4xx category
do something
Run Code Online (Sandbox Code Playgroud) 你如何将http响应代码转换为它在ruby/rails中的含义.我尝试了(想象的).to_words方法但没有成功
(byebug) resp.code
201
(byebug) resp.code.to_words
"201 Created"
Run Code Online (Sandbox Code Playgroud) 我试图在JMeter中声明http响应代码。我认为这确实很简单,但是我遇到了无法解决的问题。
我的服务器可以返回2个响应代码:200和423。200没问题,它可以正常工作,但是我不能断言423,我不知道为什么。
我尝试了以下配置的响应断言:
要测试的字段:响应代码,模式匹配规则:包含
要测试的模式:200-有效423-不起作用200 | 423-200有效,423不起作用(wtf?)
我也尝试了BeanShell Assertion
Failure = !(ResponseCode.contains("200") || ResponseCode.contains("423"));
Run Code Online (Sandbox Code Playgroud)
它也不起作用。我也试图与响应消息匹配以包含“已锁定”-不起作用。服务器响应如下所示:
Thread Name: 10 Users, 100 Repeats 1-10
Sample Start: 2017-05-19 13:06:09 MESZ
Load time: 33
Connect Time: 2
Latency: 33
Size in bytes: 333
Sent bytes:768
Headers size in bytes: 333
Body size in bytes: 0
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""):
Response code: 423
Response message: Locked
Response headers:
HTTP/1.1 423 Locked
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, …Run Code Online (Sandbox Code Playgroud) 我在响应实体异常处理方面遇到了问题。正如所见,我的响应实体错误没有改变 HTTP 响应。
我的代码
public ResponseEntity<User> retriveUser(@PathVariable int id){
Optional<User> foundUser;
foundUser= userRepo.findById(id);
if(foundUser.get()==null) {
return new ResponseEntity<>(foundUser.get(),HttpStatus.HttpStatus.NOT_FOUND);
}
else {
return new ResponseEntity<>(foundUser.get(),HttpStatus.OK);
}
}
Run Code Online (Sandbox Code Playgroud)
error-handling spring httpresponse http-response-codes spring-boot
我正在使用php脚本将用户从mysite.com/id=123发送到mysite.com/my-id-title
我可以使用.htaccess文件重写URL(这当然是自然的解决方法,但是鉴于url的替换信息不在url提供的原始参数中,而是需要数据库查询(如您所见)在示例中)我不能仅仅使用mod_rewrite来做到这一点,而且使事情变得更加困难的是,我没有访问Apache的权限,我只能使用.htaccess。
因此,我认为,作为一种变通办法,是通过php生成一条规则,该规则确实可以使用header('Location:'。$ reenvioA);来工作。
问题是PHP生成的响应代码是302,而不是200。响应响应是200,这是我需要创建站点地图并出于SEO的原因。
因此,为了防止这种情况,我考虑过告诉php我想要200个代码,因此我强制执行。
我尝试了很多方法:
header("HTTP/1.1 200 OK");
header('Location:'.$reenvioA);
Run Code Online (Sandbox Code Playgroud)
也许在Location标头之前和之后强制使用它?
header("HTTP/1.1 200 OK");
header('Location:'.$reenvioA);
header("HTTP/1.1 200 OK");
Run Code Online (Sandbox Code Playgroud)
然后,我尝试使用其可选参数进行操作:
header('Location:'.$reenvioA, false, 200);
Run Code Online (Sandbox Code Playgroud)
也许只是让第二个论点保持正确?
header('Location:'.$reenvioA, true, 200);
Run Code Online (Sandbox Code Playgroud)
然后只需使用响应本身设置变量:
header('Location:'.$reenvioA);
http_response_code(200);
Run Code Online (Sandbox Code Playgroud)
到目前为止,都没有任何效果,因为一旦我强制响应,该页面就不会加载。似乎即使在header(Location:url)之后设置了响应代码,php也不会获取该页面。

我能做什么?
http ×2
java ×2
jmeter ×2
php ×2
android ×1
asp.net ×1
asp.net-core ×1
assertion ×1
aws-lambda ×1
c# ×1
curl ×1
header ×1
httpresponse ×1
rest-client ×1
ruby ×1
spring ×1
spring-boot ×1