我在 javascript 中有一个 json 对象,
filters = Object {assetType: "CAR~LIGHT TRUCK", bodyType: "SEDAN~SPORT UTIL"}
Run Code Online (Sandbox Code Playgroud)
我需要将这些值与查询字符串中的另外 5 个字符串值一起传递。
url = '/starHome/exportToCsv/'+tier+'/?period='+period+'&level2='+level2+'&level3='+level3+'&level4='+level4+'&filters='+filters;
Run Code Online (Sandbox Code Playgroud)
窗口.location.href = url;
当我尝试在控制器中获取过滤器参数值时,
request.getparamter("filters");我得到“ [object object]”
我怎样才能将此值传递给控制器?我有一个 pojo 类包含所有这些字段。我可以使用该课程吗?
在我的nodejs程序中,我使用require(request)。它似乎没有遵循重定向,即使它应该是默认的。我什至明确设置了重定向标志(尽管这应该是默认设置的)
var options = {
url:url
, followRedirect: true
, headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36'
}
}
request(options, function (err, res, body) {...
Run Code Online (Sandbox Code Playgroud)
例如,查看网站http://www.fanniemae.com/ ,它会重定向到http://www.fanniemae.com/portal/index.html
在 /index.html 内,该 html 包含此内容
<meta http-equiv="REFRESH" content="0;url=/portal/index.html">
Run Code Online (Sandbox Code Playgroud)
请求似乎没有遵循此元标记重定向。
这是正常的吗?我怎样才能让它遵循这个重定向?
我有一个 Jersey 客户端,想要实现重试SocketTimeoutException,这是我在服务器日志上看到的错误。代码框架如下。webtarget是一个javax.ws.rs.client.WebTarget已定义 url 路径和 queryparams 的实例。我面临的问题是webtarget.request.get()永远不会抛出任何 SocketTimeoutException 所以我实际上无法捕获这个异常。有什么想法我可以实际实施重试吗?
int i = 0;
Response response;
while (true) {
try {
response = webtarget.request().get();
break;
} catch (SocketTimeoutException e){
if (i < retryNumber) {
i++;
} else {
// throws some exception
}
}
}
Run Code Online (Sandbox Code Playgroud) 我需要向服务器发出请求,该请求在不同时间返回不同的响应。我的意思是,服务器生成不同的响应,并且这些响应需要不同的执行时间,因此服务器会在响应可用时立即返回响应。
我想在服务器返回给我后立即在屏幕上打印这些响应(目前,我会解决这个问题)。
到目前为止我能做的就是打印响应,但前提是服务器返回所有响应。因此,如果第一个响应需要 1 秒,最后一个响应需要 10 秒,那么我的代码需要等待 10 秒才能打印所有消息。
编辑:添加代码我有:
//Config is gotten from yml file
RestConfig = Config["rest"].(map[string]interface{})
ServerConfig = Config["server"].(map[string]interface{})
RequestUrl := ServerConfig["url"]
RequestReader := bytes.NewReader(body)
Request, _ := http.NewRequest("POST", RequestUrl.(string), RequestReader)
//AppendHeaders append the needing headers to the request
client.AppendHeaders(Request, RestConfig["headers"])
//the type of client.HttpClient is *http.Client
Response, _ := client.HttpClient.Do(Request)
//And to print in the screen
defer Response.Body.Close()
fmt.Println( "-> Receiving response:\n---\n" )
fmt.Println( Response , "\n---\n-> Response body:\n---\n")
body_resp, _ := ioutil.ReadAll(Response.Body)
fmt.Println( string(body_resp) …Run Code Online (Sandbox Code Playgroud) 我在请求验证方面遇到问题。一切都有效,但只有一种模式。如果我不希望该字段为必填字段,但一旦填充,我希望它与正则表达式匹配。
但当我将该字段留空时,它会引发正则表达式错误。
关于我应该如何处理它有什么建议吗?顺便说一句:我创建了一个自定义请求类,负责验证,因此如果解决方案也可以在请求中而不是直接在控制器中,那就太好了。
return [
'dic' => 'max:12|regex:/^[a-zA-Z]{2}[0-9]{8}[0-9]*$/',
];
Run Code Online (Sandbox Code Playgroud) 我正在使用请求模块向 Telegram 机器人发送消息,一切都很好,除了我显示表情符号的方式,它打印得不好
\n\n发帖请求:
\n\nrequest.post({\n url: `${this.getApiURL()}/${apiName}`,\n formData: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'Charset': 'utf-8',\n }\n }, (err, resp, body) => {});\nRun Code Online (Sandbox Code Playgroud)\n\n有效负载包含一条带有一些表情符号的文本消息,例如:
\n\nconst _emojis = {\n throwingAKiss: '\\xF0\\x9F\\x98\\x98',\n tearsOfJoy: '\\xF0\\x9F\\x98\\x82',\n smirkingFace: '\\xF0\\x9F\\x98\\x8F'\n }\nRun Code Online (Sandbox Code Playgroud)\n\n但我显示这个符号\xc3\xb0
\n我有一个页面,里面有一个componentDidMount(). 我们有 API 调用,但是如果您在这些调用解决之前离开,则会收到 React 错误。您不能setState在未安装的组件上。因此,出于这个原因,我使用 AxioscancelToken来取消componentWillUnmount(). 它正在工作并且 API 调用正在被取消。
但是,如果您离开,然后返回同一页面,我会发现这些 API 调用仍然被取消并且没有得到解决。也许我实施的cancelToken方式错误,或者有没有办法“取消”这些调用?
这是codesandbox: axios cancelToken示例
我有一个问题,当我发布表单时,我无法在 API 中获取帖子中的内容。
这是我在 React 中使用 axios 的帖子:
onSubmit = () => {
let data = {
nickname: this.state.nickname,
password: this.state.password
}
axios.post("/api/user/login", { data })
.then(res => {
console.log("res from api is => ", res.data);
})
}
Run Code Online (Sandbox Code Playgroud)
这是我的 API 中的:
从“koa-body”导入 koaBody;
const app = new koa();
const router = new Router();
app.use(router.routes());
app.use(koaBody());
router.post("/api/user/login", async(ctx) => {
console.log("body is => ", ctx.request.body);
ctx.body = "ok";
});
Run Code Online (Sandbox Code Playgroud)
问题是 ctx.request.body 总是未定义...你能告诉我为什么吗?我尝试使用 router.get ,没有问题,工作正常。
我有一个C 套接字程序,它必须使用http2 协议。它返回错误请求 - HTTP 错误 400。请求格式错误。
最初,我通过curl 7.64发送了如下请求:
curl -v -http2 -i https://mywebsite.xyz
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
* Expire in 0 ms for 6 (transfer 0x55cc25ec95c0)
* Expire in 1 ms for 1 (transfer 0x55cc25ec95c0)
* Expire in 0 ms for 1 (transfer 0x55cc25ec95c0)
* Expire in 1 ms for 1 (transfer 0x55cc25ec95c0)
* Expire in 0 ms for 1 (transfer 0x55cc25ec95c0)
* Expire in 0 ms for 1 (transfer 0x55cc25ec95c0)
* Expire in 1 ms for 1 (transfer 0x55cc25ec95c0)
* Expire …Run Code Online (Sandbox Code Playgroud) 我有一个 store() 方法。
public function create(StorePost $request)
{
$post = Post::create([
'title' => $request->title,
'description' => $request->description,
]);
return response()->json([
'post' => $post
], 201);
}
Run Code Online (Sandbox Code Playgroud)
在我的 StorePost 课程中,我验证了该请求。
public function rules()
{
return [
'title' => 'required|string|max:255',
'description' => 'required',
];
}
Run Code Online (Sandbox Code Playgroud)
当我用 Postman 测试它时输入了错误的条目,例如,如果我用空值填充“描述”,它会返回主页,没有任何响应或错误。如何检索验证错误?
request ×10
node.js ×3
javascript ×2
json ×2
laravel ×2
validation ×2
api ×1
asynchronous ×1
axios ×1
c ×1
curl ×1
emoji ×1
get ×1
go ×1
http2 ×1
java ×1
jersey ×1
jersey-2.0 ×1
koa ×1
php ×1
reactjs ×1
redirect ×1
regex ×1
sockets ×1
spring-mvc ×1
telegram-bot ×1