小编tac*_*aco的帖子

如何从PHP中获取远程JSON或XML API数据并将返回对象指定为PHP变量?

我在做什么:

我正在用PHP编写一个自定义程序,它通过API从在线LMS服务中提取数据.现在,我正在尝试实现可用的单点登录功能.

当单击一个按钮时(通过js或php POST或?),程序的这一部分需要对API执行GET请求,并最终将用户浏览器重定向到API的响应中提供的URL.

API允许选择XML或JSON响应,我更喜欢使用JSON,但如果需要,将使用XML.

从提出请求的API文档:

本文档中列出的所有请求都应在请求标头中包含内容类型(XML或JSON),并以以下基础Uri作为前缀:https://api.example.com/v1.svc

例如,以XML格式获取用户列表的Uri将是:

内容类型:text/xml

获取https://api.example.com/v1.svc/users?apikey=MY-KEY&source=MY-APP

以下是我正在尝试实现的内容:

如何获取用户的LoginKey

获得要登录的用户ID后,您需要向/ users/{user-id}发出GET请求,该请求将返回有关该用户的信息.其中包含一个LoginKey,您可以使用它将用户的浏览器重定向到.

例如.

获取 https://api.example.com/v1.svc/users/USER-ID?apikey=YOUR_API_KEY&source=sampleapp

来自API的回复:

<User>
  <Id>abc12345678</Id>
  <UserName>rich_demo@example.com</UserName>
  <FirstName>Rich</FirstName>
  <LastName>Chetwynd</LastName>
  .....
  <LoginKey>https://demo.example.com/login.aspx?loginkey=xxxzzzyyy777222</LoginKey>
</User>
Run Code Online (Sandbox Code Playgroud)

<LoginKey>对象的数据是,我需要在用户的浏览器最终重定向到的URL.

我是新手使用API​​并尝试了大量的方法,在发布之前我无法工作.如果您知道如何实现这一点,我将非常感激您分享您的知识.

谢谢.

php xml api json get

5
推荐指数
1
解决办法
2万
查看次数

通过IntelliJ IDEA 13部署的Tomcat war返回错误

我在IntelliJ中部署我的第一个WAR文件时出现以下错误.据推测,这是一个本地问题,因为这只是我们为测试我们的设置而部署的WAR文件.

所有80个Maven测试都在通过,但是当我浏览到Web应用程序时,我收到此错误:

java.lang.IllegalArgumentException: javax.naming.NameNotFoundException: Name [jdbc/ipam] is not bound in this Context. Unable to find [jdbc].
    com.myapp1.ipam.rest.JaxRsApplication.<init>(JaxRsApplication.java:26)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1104)
    org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:902)
    org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:872)
    org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:964)
    org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:956)
    org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:336)
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:315)
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:310)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

这似乎是问题所在:

    public JaxRsApplication() {
    DataSource datasource;
    try {
        Context initCtx = new InitialContext();
        Context envCtx = (Context) initCtx.lookup("java:comp/env");
        datasource = (DataSource) envCtx.lookup("jdbc/ipam");
    } catch (NamingException e) {
        throw new IllegalArgumentException(e);
    }
    this.init(new SystemConfiguration(datasource));
}
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用IntelliJ,而且我是Java的新手,所以我不知道该怎么做. …

java tomcat intellij-idea

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

jQuery .scrollTop()不按预期滚动到li元素

我本质上在div中有一个无序的列表项列表,不能正确滚动到下一个元素.我只是想要一个按钮来向上和向下滚动列表.

虽然代码会滚动,但它与li元素不匹配.每次点击后,它会向上滚动一点,然后在下一次点击时向下滚动.我试过走DOM并验证它滚动到的li元素是一个元素,但没有看到问题.

我有以下jsfiddle:http: //jsfiddle.net/YD9s5/9/

要素是:

  • 一个id为的滚动div photos-div
  • ID为无序的无序列表photos-li(哎呀,暂时离开)
  • 列出具有递增ID的项目,photo-li-X其中X是数字

用于滚动div的代码是:

        $('#photos-div').scrollTop($('#photo-li-' + i).offset().top);
Run Code Online (Sandbox Code Playgroud)

i变量递增,你可以看到.

javascript jquery scrolltop

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

标签 统计

api ×1

get ×1

intellij-idea ×1

java ×1

javascript ×1

jquery ×1

json ×1

php ×1

scrolltop ×1

tomcat ×1

xml ×1