1

我正在使用 构建一个应用程序Ocsigen,此应用程序不会连接到数据库,目标是将内容从主网站复制到此处。(我正在使用 curl 来获取请求)

所以我的问题是,我正在尝试与用户进行“登录”,并且我想构建一个服务来保存我的代码usernamepassword用户引入的。然后我可以使用usernamepassword向主网站发出 GET 请求。

我的问题只有一个,我尝试了很多方法来构建一个保存这两个字符串的服务,但我想不出办法。

我做了很多不同的尝试,最后一次我做了类似以下的事情:

let save_data =
  Eliom_registration.Action.create
    ~meth:
      (Eliom_service.Post
         (Eliom_parameter.unit,
          Eliom_parameter.string "username"))
    ~path:Eliom_service.No_path
    (fun () username -> username)

基于 Ocsigen 在他们的网站上的一个例子,但我不工作......

我创建了一个表单,它成功地执行了我创建的服务,但该服务从来没有做我需要的事情。

对不起,如果我解释得很糟糕......知道如何解决这个问题吗?我走错路了?

谢谢!

PS:我也尝试从 Ocsigen-Start src 文件夹中编辑 Os_services.connect_service ,我想我必须对这种情况进行 Post Service ,但我还是没有做我想做的事。

4

1 回答 1

2

我认为您正在寻找的是 Eliom_reference,即如果您希望将信息存储起来以备后用。

https://ocsigen.org/eliom/api/server/Eliom_reference

当谈到 Eliom 时,我有点生疏,但它看起来像这样:

let current_username : string option Eliom_reference.eref =
  Eliom_reference.eref ~scope:Eliom_common.default_process_scope None

let save_data = Eliom_registration.Action.create
  ~meth:(Eliom_service.Post
           (Eliom_parameter.unit,
            Eliom_parameter.string "username"))
  ~path:(Eliom_service.No_path)
  (fun () username -> Eliom_reference.set current_username (Some username))
于 2017-06-20T16:33:39.013 回答