Parse在check50 pset6中获取错误

时间:2016-10-20 20:35:08

标签: cs50

我已为此pset编写了解析函数,但check50仅检查以下内容是否有效:

var backEndDate = "2016-10-20 10:00 AM" + " UTC";
console.log(new Date(backEndDate));

所以基本上只检查空间是有效的。我想在比较字符串时对代码中的问题有一些指导。我猜这些功能的使用有问题,但经过几个小时的研究,我仍然没有看到解决方案。我是一个初学者,我真的很感激一些帮助。感谢

这是我的解析函数的代码

:) server.c exists
:) server compiles
:( HTTP/1.0 returns error code 505
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( Method of 'abcGET' returns error code 405
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( Method of 'GETabc' returns error code 405
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( request-target without starting '/' returns error code 501
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( request-target of abc/hello.php returns error code 501
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( Requesting cat.exe returns error code 501
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:( Requesting non-existant file returns error code 404
   \ expected output, but not "HTTP/1.1 400 Bad Request\r\nContent-Typ..."
:) Requesting request-target with " returns error code 400
:) Two spaces after GET returns error code
:) A space within the request target returns error code
:) Two spaces before HTTP/1.1 returns error code

1 个答案:

答案 0 :(得分:0)

Parse始终返回" 400 Bad Request",表示条件:

if (spaces > 2)

始终是evaluting为true,这是因为line有两个或更多空格但是因为http请求的格式要求空格从请求中分离方法而另一个空间要从http版本中分离请求

你需要搜索两个连续的空格,而不是整行的两个空格。

你应该使用推荐函数而不是很多for循环。