向iOS用户发送通知时,对于其中一些用户,我会收到响应状态码400(BadDeviceToken)或代码410(未注册).
从Apple关于"BadDeviceToken"的文档:
指定的设备令牌很糟糕.验证请求是否包含有效令牌以及令牌是否与环境匹配.
"坏"是什么意思?我知道设备令牌在某些时候是有效的.用户如何使其设备令牌变坏?
从关于"未注册"的文档:
设备令牌对于指定的主题处于非活动状态.
这是否意味着应用程序已被删除?或者这种反应可能还有其他原因.
apple-push-notifications http-headers ios http-status-code-400 http-status-code-410
所以我有同一个网站,从不同的网络和计算机向 (1) Chrome 76 和 (2) Chrome 77 上的同一台服务器发出相同的请求。
一个请求有 (1)Sec-Fetch-Mode: no-cors, Sec-Fetch-Site: cross-site和另一个 (2) Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-site。与一个no-cors具有400与CORS一个C#的Web API端点启用(多年,数以千计的各类设备的不同用户的)失败。
到底是怎么回事?有传言说 Chrome错误没有发送该标头进行飞行前检查,但它确实存在并设置为no-cors.
Chrome 中的安全设置或错误?可修复的服务器端还是前端?
这是由 XMLHttpRequest 发送的,而不是新的 Fetch-API。
google-chrome cors http-status-code-400 sec-fetch-site sec-fetch-mode
我们正在开发一个RESTful api,它以JSON编码数据的形式接受请求中的查询参数.
我们想知道当非请求/非预期参数与所需参数一起传递时,正确的行为是什么.
例如,我们可能要求给定端点上的PUT请求必须分别为密钥名称和姓氏提供两个值:
{
"name": "Jeff",
"surname": "Atwood"
}
Run Code Online (Sandbox Code Playgroud)
如果虚假键也被传递,如下例中的颜色,该怎么办?
{
"name": "Jeff",
"surname": "Atwood",
"color": "red"
}
Run Code Online (Sandbox Code Playgroud)
颜色的值不是预期的,也没有记录.
我们应该忽略它还是拒绝BAD_REQUEST 400状态错误的请求?
我们可以断言请求是坏的,因为它不符合文档.可能API用户应该被警告(她传递了价值,她会期待一些东西.)
但我们也可以断言请求可以被接受,因为所有提供的参数都可以满足.
有没有办法自定义在@RequestParam未将请求发送到请求处理程序时显示的内容?我总是得到HTTP状态400的描述" 客户端发送的请求在语法上是不正确的(). "在这种情况下.
我试图从URL获取InputStream.该URL可以从Firefox打开.它返回一个json,我已经在Firefox中安装了一个用于查看json的插件,所以我可以在那里查看它.
所以我试图通过以下方式从Java中获取它:
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
但它在urlConnection.getInputStream()中抛出IOException.
我也尝试过:
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = url.openStream();
Run Code Online (Sandbox Code Playgroud)
但没有运气.
任何信息都很明显.提前致谢.
我正在使用谷歌翻译API,并试图捕获我收到错误时返回的数据.(仅供参考:我知道API密钥错了,我只是在测试它).
问题是,通过单击链接可以看到浏览器显示错误信息,但C#抛出WebException,我似乎无法获取响应数据.
这是我的代码:
string url = "https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world";
WebClient clnt = new WebClient();
//Get string response
try
{
strResponse = clnt.DownloadString(url);
System.Diagnostics.Debug.Print(strResponse);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return null;
}
Run Code Online (Sandbox Code Playgroud)
即使响应是(400)错误请求(或任何其他错误共振),如何返回JSON错误?我需要使用除了以外的其他类WebClient吗?
我正在尝试运行socket.io,我得到了一堆这些:
http://domain.com:8080/socket.io/?EIO=2&transport=polling&t=1401421022966-0 400 (Bad Request)
Run Code Online (Sandbox Code Playgroud)
这是我得到的回应:
{"code":0,"message":"Transport unknown"}
Run Code Online (Sandbox Code Playgroud)
我找不到任何理由.我在某个地方看到它可能会误解客户端,但这就是我能得到的.
stackoverflow中有几个类似的条目用于此错误(HTTP 400),但我没有发现任何与我相关的内容; 所以,如果已经回答了......我道歉.
Chrome是我的默认浏览器,我每天都会使用许多Google服务,例如Gmail,地图,文档等.
但是,当我登录Google时,我注意到有些资产没有从Google网站(*.google.com)加载.
例如; 主www.google.com搜索结果左上角的Google徽标; 或地图中的图像切片.
那些缺少的图像(或一般图像中的资源,JS,CSS)在DevTools控制台中有引用: Failed to load resource: the server responded with a status of 400
一旦我在DevTools> Application中清除存储,我自然会被注销,但那些丢失的资产开始表现正常并按预期加载.我可以重新登录Google服务并毫无问题地使用它们,直到下次发生.
由于清除存储(cookie和缓存)可以解决问题,因此我认为它与任何已安装的加载项(阅读AdBlock)无关.
有没有人遇到过这个问题,或者更好的解决方案呢?或者我应该继续指责Google吗?:)
对特定端点的POST允许上传图像,除非图像太大,所以我想在这种情况下返回适当的http状态代码响应.
在这种情况下,http状态代码400响应似乎不太合适.
400错误请求:"由于被认为是客户端错误的内容(例如,格式错误的请求语法,无效的请求消息成帧或欺骗性请求路由),服务器不能或不会处理请求.
我认为图像太大并不意味着请求格式错误或语法不正确.
有什么建议?
我希望得到一些帮助调试此问题.如果我将以下JSON发送到我的后端,它可以正常工作:
{
"approvalRequired": false,
"location": {
"locationName": "<+37.33233141,-122.03121860> +\/- 5.00m (speed 0.00 mps \/ course -1.00) @ 9\/16\/18, 9:24:59 PM Pacific Daylight Time",
"longitude": -122.0312186,
"latitude": 37.332331410000002
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我现在发送以下内容:
{
"approvalRequired": false,
"scheduledStartTime": "2016-01-01T10:24:00+01:00",
"location": {
"locationName": "<+37.33233141,-122.03121860> +\/- 5.00m (speed 0.00 mps \/ course -1.00) @ 9\/16\/18, 9:24:59 PM Pacific Daylight Time",
"longitude": -122.0312186,
"latitude": 37.332331410000002
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了上述错误.在我的后端代码中,我有以下内容:
@DynamoDBTypeConverted(converter = ZonedDateTimeTypeConverter.class)
@DynamoDBAttribute(attributeName = "scheduledStartTime")
public ZonedDateTime scheduledStartTime;
Run Code Online (Sandbox Code Playgroud)
API方法签名如下所示:
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity create(@RequestBody Event event) {...} …Run Code Online (Sandbox Code Playgroud) api ×2
java ×2
rest ×2
c# ×1
cors ×1
http-headers ×1
ioexception ×1
ios ×1
javascript ×1
node.js ×1
request ×1
socket.io ×1
spring ×1
spring-mvc ×1
swift ×1
url ×1
validation ×1
webclient ×1