小编Fre*_*ik 的帖子

在Jersey 2.22.2中获取客户端IP

我试图访问正在调用我的休息服务器的客户端IP,但我只是作为响应得到null.Web服务器正在运行,我可以从Web浏览器访问.

我试过了

@Context HttpServletRequest

还有

@Context ContainerRequest请求
request.getRequestHeader("HTTP_FORWARDED")
// HTTP_X_FORWARDED
// HTTP_CLIENT_IP

但是,无论是否成功,响应都为空或空白.

建立

  • 泽西岛v:2.22.2
  • Grizzly v:2.3.22
  • Java v:8

Rest.java

   import javax.ws.rs.GET;
   import javax.ws.rs.Path;
   import javax.ws.rs.PathParam;
   import javax.ws.rs.Produces;
   import javax.ws.rs.QueryParam;
   import javax.ws.rs.container.ContainerRequestContext;
   import javax.ws.rs.core.Context;
   import javax.ws.rs.core.MediaType;
   import javax.ws.rs.core.Request;
   import javax.ws.rs.core.UriInfo; 

   @Path("/rest")
   public class Rest {
   @GET
   @Path("/test/")
   @Produces(MediaType.APPLICATION_JSON)
   public TestAddress test(@Context HttpServletRequest re){
      System.out.println(re.getRemoteAddr());
      TestAddress adr = new TestAddress();
      adr.setAge(32);
      adr.setName("Fidde");
      adr.setSurename("Lass");

      //System.out.println(uriInfo.getBaseUri());
      return adr;
   }
Run Code Online (Sandbox Code Playgroud)

main.java

import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import java.io.IOException;
import java.net.URI;

public …
Run Code Online (Sandbox Code Playgroud)

java rest jersey grizzly maven

4
推荐指数
1
解决办法
1906
查看次数

Flask-WTF validate_on_submit() 未执行

我无法弄清楚为什么我的表单无法验证。我已经确保将 CSRF 字段插入到 HTML 中form.hidden_tag

这是我的注册表单的代码:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo


class RegistrationForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), Length(min=2, max=20)])
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo(password)])
    submit = SubmitField('Register')
Run Code Online (Sandbox Code Playgroud)

这是我正在检查表单是否经过验证的函数。它确实提交,因为程序将“已提交”打印到我的终端中

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegistrationForm()
    if form.is_submitted():
        print("submitted")
    if form.validate_on_submit():
        flash(f'Account created for {form.username.data}!', 'success')
        return redirect(url_for('home'))
    print(forms.errors)
    return render_template('register.html', title='Register', form=form)
Run Code Online (Sandbox Code Playgroud)

使用forms.errors,我收到以下错误消息: …

wtforms flask-wtforms

1
推荐指数
1
解决办法
1704
查看次数

标签 统计

flask-wtforms ×1

grizzly ×1

java ×1

jersey ×1

maven ×1

rest ×1

wtforms ×1