小编Vol*_*huk的帖子

将多个参数传递给rest API - Spring

我想弄清楚是否可以将JSON对象传递给其他API,或者将多个参数传递给该API?以及如何在Spring中读取这些参数?让我们假设网址如下所示:

实施例1, http://localhost:8080/api/v1/mno/objectKey?id=1&name=saif

传递JSON对象是否有效,如下面的url?

例2 http://localhost:8080/api/v1/mno/objectKey/{"id":1, "name":"Saif"}

问题:

1)是否可以像往常一样将JSON对象传递给url?

2)我们如何传递和解析Ex.1中的参数?

我试着写一些方法来实现我的目标,但找不到合适的解决方案?

我试图将JSON对象作为@RequestParam传递

http://localhost:8080/api/v1/mno/objectKey?id=1 出现意外错误 (type=Unsupported Media Type, status=415). Content type 'null' not supported

http://localhost:8080/api/v1/mno/objectKey/id=1 出现意外错误 (type=Not Found, status=404). No message available

http://localhost:8080/api/v1/mno/objectKey/%7B%22id%22:1%7D 出现意外错误 (type=Not Found, status=404). No message available

@RequestMapping(value="mno/{objectKey}",
                method = RequestMethod.GET, 
                consumes="application/json")
    public List<Book> getBook4(@RequestParam ObjectKey objectKey) {
        ...
    }
Run Code Online (Sandbox Code Playgroud)

我试图将JSON对象作为@PathVariable传递

@RequestMapping(value="ghi/{objectKey}",method = RequestMethod.GET)
    public List<Book> getBook2(@PathVariable ObjectKey objectKey) {
        ...         
    }
Run Code Online (Sandbox Code Playgroud)

我创建了这个对象来保存id参数和其他参数,如名称等....

class ObjectKey{
        long id;
        public long getId() {
            return id;
        }
        public void setId(long id) …
Run Code Online (Sandbox Code Playgroud)

java rest spring json spring-mvc

19
推荐指数
2
解决办法
15万
查看次数

WebDriverException:错误:拒绝访问属性“导航器”的权限

这是遇到的“魔术”的处理方法:该代码在Ubuntu 16.04,Ubuntu 15.10上可以正常工作,但有错误:

org.openqa.selenium.WebDriverException: Error: Permission denied to access property "navigator"
org.openqa.selenium.WebDriverException: Error: Permission denied to access property "document"
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

import geb.spock.GebReportingSpec
import geb.waiting.WaitTimeoutException

class LoginSpec extends GebReportingSpec {
    def "#0 go to login FB"() {
    when:
        browser.go("https://www.facebook.com/")
    then:
        delay(9)
        if (browser.title != "Facebook") {
            browser.title == "Facebook - Log In or Sign Up"
            browser.currentUrl == "https://www.facebook.com/"
            waitFor(30){
                $("#loginbutton").size() == 1
            }
            $("#email").value(Config.FB_USERNAME)
            $("#pass").value(Config.FB_PASSWORD)
            println("entered credentials")
            $("#loginbutton").click()
        }
        delay(9)
    }

    void delay(Long seconds){
        try {
            waitFor(seconds){ }
        } catch (WaitTimeoutException …
Run Code Online (Sandbox Code Playgroud)

firefox selenium selenium-firefoxdriver selenium-webdriver geckodriver

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

无法使用 spring javamail 从服务器 heroku 发送电子邮件

我尝试使用Spring javamailHeroku发送电子邮件,但出现错误。

我的代码:

import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;

@Service("mailService")
public class JavaMailerServiceImpl {

    private MailSender mailSender;
    public JavaMailerServiceImpl(JavaMailSenderImpl mailSender) {
        this.mailSender = mailSender;
    }

    public void sendMail(String to, String subject, String body){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(body);
        mailSender.send(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

豆子:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com"/>
    <property name="port" value="587"/>
    <property name="username" value="**********@gmail.com"/>
    <property name="password" value="********"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean> …
Run Code Online (Sandbox Code Playgroud)

java email gmail spring heroku

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