当我试图上传照片时,我的反应项目中我的firebase存储上传400错误导致消息错误消息错误...一切正常工作并成功上传图片,但现在它停止上传照片,发出以下错误,我不知道问题出在哪里......
提示检查的链接
POST https://firebasestorage.googleapis.com/v0/b/xxxxx-****.appspot.com/o?name=usertemp%2F0rdrGK4MRDRptAMCc3mHDveytJv1%2F0rdrGK4MRDRptAMCc3mHDveytJv1.jpg 400 ()
Run Code Online (Sandbox Code Playgroud)
这是链接响应的错误
{
"error": {
"code": 400,
"message": "Permission denied. Could not access bucket xxxxx-****.appspot.com. Please enable Firebase Storage for your bucket by visiting the Storage tab in the Firebase Console and ensure that you have sufficient permission to properly provision resources."
}
Run Code Online (Sandbox Code Playgroud)
这是我的安全
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth!=null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然试图改变match到/b/xxxxx-****.appspot.com/o与仍然没有成功
上帝,你不喜欢WCF.
我读了所有可能的线程,但我现在真的被卡住了.
这是WCF配置:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BaseHttp"
maxBufferSize="4194304"
maxBufferPoolSize="4194304"
maxReceivedMessageSize="4194304" />
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="TaskServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="TaskServiceBehavior" name="TaskService">
<endpoint
address="http://www.mysite.com/TableTaskService/TableTaskService.svc"
binding="basicHttpBinding" bindingConfiguration="BaseHttp"
contract="TableTaskService.ITableTaskService" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://www.mysite.com/TableTaskService/" />
</baseAddresses>
</host>
</service>
</services>
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://www.mysite.com/" />
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
现在我发送一条消息并抛出这个默认异常(在svclog文件中看到):
已超出传入邮件的最大邮件大小限额(65536).要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性.
现在我清楚地说它应该是4mb.
我的客户代码:
TableTaskServiceClient client =
new TableTaskServiceClient(
new BasicHttpBinding { MaxBufferSize = 4194304, …Run Code Online (Sandbox Code Playgroud) 我的PC上有一个控制台应用程序,即signalR服务器.
我有一个html页面是互联网上的signalR客户端.但我尝试连接服务器,但我有一个错误的请求400错误.如果服务器关闭,我有另一个响应.
signalR客户端是否可以连接PC上的服务器?
(对不起我的英语不好)
我的页面
<input type="text" id="msg" value=" " />
<input type="button" id="send" value="send" />
<ul id="message">
</ul>
<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-1.1.2.min.js"></script>
<script>
$(function () {
jQuery.support.cors = true;
// Open a connection to the remote server
var connection = $.hubConnection('http://MyIpAddress:8080');
var chat = connection.createHubProxy('chat');
chat.on('send', function (message) {
$('#message').append('<li>' + message + '</li>');
});
// Turn logging on so we can see the calls in the browser console
connection.logging = true;
connection.start().done(function () {
$('#send').click(function () {
chat.invoke('send', …Run Code Online (Sandbox Code Playgroud) 我有一个ArticleFormModel正常发送的包含数据,html form由Spring使用@ModelAttribute注释注入,即
@RequestMapping(value="edit", method=RequestMethod.POST)
public ModelAndView acceptEdit(@ModelAttribute ArticleFormModel model,
HttpServletRequest request, BindingResult errors)
{
//irrelevant stuff
}
Run Code Online (Sandbox Code Playgroud)
在某些方面,一切都很完美.问题是ArticleFormModel包含一个double字段(protected使用普通的setter设置).只要用户发送的数据是数字,一切正常.当他们输入一个单词时,我得到的只是400 Bad Request Http Error.
我已经WebDataBinder为这个控制器注册了一个
@InitBinder
protected void initBinder(WebDataBinder binder) throws ServletException
{
binder.setValidator(validator);
}
Run Code Online (Sandbox Code Playgroud)
where validator实现org.springframework.validation.Validator接口的自定义类的实例,但我不知道下一步该做什么.我希望能够解析模型,获得有效的HTTP响应并在表单中显示错误消息.initBinder()调用该方法,我可以从中调用validator.validate(),但它不会更改错误(对于错误的数据).
我知道我可以使用setter来解析字符串,检查它是否为数字,如果没有,将该信息存储在变量中,然后在验证期间检索该变量,但这似乎太多了.必须有一种更简单的方法来强制字段上的类型而不会出现错误.此外,问题在于数据绑定,而不是验证,所以我觉得它应该放在相应的代码层中.
我也在考虑实施java.beans.PropertyEditor和调用binder.registerCustomEditor(),但我缺乏可靠的知识来源.
客户端验证(通过JavaScript检查数据是否为数字)是不可能的.
TL; DR:
如何在@ModelAttribute不获取项目的情况下强制某个字段具有特定类型400 Bad Request Http Error?
我在构建Spring + Spring MVC + Hibernate + MySQL项目时遇到了问题.
一切正常但是当我得到"editpage"然后想要将编辑信息发布到MySQL时,我从我的Tomcat收到以下错误:
HTTP Status 400 - Required Integer parameter 'id' is not present
Run Code Online (Sandbox Code Playgroud)
控制器类
@RequestMapping(value = "/users/edit", method = RequestMethod.POST)
public String saveEdit(@ModelAttribute("userAttribute") User user,
@RequestParam(value = "id", required =
true)Integer id, Model model){
logger.debug("Received request to update person");
user.setId(id);
personService.edit(user);
model.addAttribute("id", id);
return "editedpage";
}
Run Code Online (Sandbox Code Playgroud)
服务类
public void edit(User user){
logger.debug("Editing existing user");
Session session = sessionFactory.getCurrentSession();
User existingUser = (User) session.get(User.class, user.getId());
existingUser.setLogin(user.getLogin());
existingUser.setPassword(user.getPassword());
existingUser.setReal_name(user.getReal_name());
session.save(existingUser);
}
Run Code Online (Sandbox Code Playgroud)
我的JSP页面
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" …Run Code Online (Sandbox Code Playgroud) 按照此处的指南,我正在尝试设置 Google Drive“推送通知”(网络钩子),以便我可以观察所有文件更改。我需要发送一次性 POST 请求https://www.googleapis.com/drive/v3/changes/watch以初始“注册”网络钩子。但我似乎无法成功地做到这一点;使用curl我收到400 Bad Request回复。
这是我的 HTTP 请求,通过curl:
curl 'https://www.googleapis.com/drive/v3/changes/watch' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \
--data-binary '{"id": "webhook", "type": "web_hook", "address": "https://example.com/webhooks", "token": "example"}' \
-vvvv
Run Code Online (Sandbox Code Playgroud)
响应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: pageToken",
"locationType": "parameter",
"location": "pageToken"
}
],
"code": 400,
"message": "Required parameter: pageToken"
}
}
Run Code Online (Sandbox Code Playgroud)
我从pageToken哪里得到它?另外,我如何将它包含在请求中(例如作为标头)?指南中没有提到它。
post google-api webhooks http-status-code-400 google-drive-api
即使阅读了许多文档,书籍和规范, 我也无法100%确定我应该使用http状态代码403还是409。
有人认为403应该仅用于授权问题,但是看到twitter的api使用403违反更新限制,我认为403的实际使用范围不仅仅限于授权问题。也许可以用来告诉请求违反了服务器端约束。
而且,从规格上看,当我们可以预期客户端可以解决此问题时,似乎使用409。
我会欣赏现实世界中的各种示例,其中包括何时使用403和何时使用409,以及在我的情况下使用哪种代码的见解,我将在下面的摘要中进行介绍(以免违反NDA) )。
编辑后:该示例很长,但简单地说,它是关于约束验证失败时返回什么代码。当约束验证失败时,您是否总是返回400?我应该返回400,而不是403或409吗?
有一个客户告诉服务A哪个书架包含一本特定的书。在向DB记录哪个书放在哪个书架上时,服务A可以告诉客户该客户正试图将书放在错误的书架上。服务A可以通过询问另一个服务B来告知这一点,该服务B在决定书的去向时基本上具有某种逻辑。
在这种情况下,应该为A服务使用什么http代码?
(该请求与服务B的决定相冲突-409?-但客户端无法解决此问题,因为当服务B做出决定时,该请求是永久性的。书号和书架号都在path参数中(即,它们是此端点中的唯一参数),因此客户端无法真正做出任何更改来解决同一请求的问题)
此外,客户端可以告诉服务A不再使用书架(因为书架已满或出于任何原因)。当客户告诉服务A不再使用书架C,然后客户告诉服务A它想将另一本书放到书架C上时,服务A应该告诉客户它不能这样做。在这种情况下,应该为A服务使用什么http代码?(该请求将与表明书架C未使用的数据库状态发生冲突-409?但是客户端无法解决此问题,因为当不使用书架时,该书架在服务A中是永久的,并且永远不会在使用中再次-不是409?)
预先感谢您的时间和投入!
rest http-status-codes http-status-code-403 http-status-code-400 http-status-code-409
有人可以澄清以下情况下我应该期待什么状态代码吗?例如,我正在发送具有以下正文格式的 POST 请求:
\n\n{\n "id": 321,\n "username": "tombrown",\n "email": "tombrown@gmail.com",\n "password": "qwerty123",\n "activated": true \n}\nRun Code Online (Sandbox Code Playgroud)\n\n所以问题是:
\n\n1)如果我指定错误类型的数据,例如“id”:\xe2\x80\x9ctwoone\xe2\x80\x9d而不是int,服务器是否应该返回400,“activated”:\xe2\x80\x9cyes\xe2 \x80\x9d 而不是布尔值等。或者服务器应该在这里返回 422?
\n\n2) \xe2\x80\x9cid\xe2\x80\x9d 值应该是 int,但实际上它是 long int,例如 9223372036854774700。
\n\n3)正文中缺少某些字段,例如我尝试发送:
\n\n{\n "id": 321,\n "username": "tombrown",\n "activated": true \n}\nRun Code Online (Sandbox Code Playgroud)\n\n这些示例是否会导致 400、422 或其他一些选项?什么样的反应应该是正确的?
\nhttp http-status-codes http-status-code-400 http-status-code-422
我正在编写一个用于验证促销代码的微服务。客户向我发送促销代码和产品 ID (json)。有 200 OK 的情况,代码很好,我为他们的订单申请了折扣。但是有一个错误的情况,促销代码不适用于该产品。我不确定要使用什么响应代码。
这也应该是 200 OK (有某种消息说代码验证失败)?
应该是 400 Bad Request 吗?
两者似乎都不完全合适,当它不是“OK”时说 200 OK 很奇怪,但是 4xx 通常表示请求/http 协议的结构存在问题 - 在这种情况下,请求的结构很好。
api http http-status-codes http-status-code-400 http-status-code-200
我有以下WebSocketJava 客户端代码。
final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
ClientManager client = ClientManager.createClient();
client.connectToServer(new Endpoint() {
@Override
public void onOpen(Session session, EndpointConfig config) {
try {
session.addMessageHandler((MessageHandler.Whole<String>) message -> {
System.out.println("Received message: "+message);
});
session.getBasicRemote().sendText(SENT_MESSAGE);
} catch (IOException e) {
e.printStackTrace();
}
}
}, cec, new URI("wss://ws.bitso.com"));
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我收到此错误。
org.glassfish.tyrus.core.HandshakeException: Response code was not 101: 400
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?