java接口供APP端调用

本文介绍了一个用于验证京东平台上商品是否可售的接口实现。该接口通过POST请求调用京东提供的API,传递商品ID(skuIds)和验证令牌(token),并返回商品的可售状态结果给客户端应用。
package com.idorabox.manage.web.app;

import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.idorabox.manage.service.book.JdBookTokenService;
import com.idorabox.manage.service.jd.JdTokenService;
import com.idorabox.manage.web.util.HttpUtils;
/**
 * 3.12 商品可售验证接口    
 * @author chen
 *
 */
@Controller
@RequestMapping("/appMessage")
public class CheckAction {
    @Resource
    JdTokenService jdTokenService;
    @Resource
    JdBookTokenService jdBookTokenService;
    @RequestMapping("/productCheck.html")
    public void check(
            @RequestParam(value = "skuIds", required = false)String skuIds,
            @RequestParam(value = "token", required = false)String token,
            HttpServletResponse response) {
        Map<String, String> params = new HashMap<String, String>();
        //京东查询接口
        String url = "https://bizapi.jd.com/api/product/check";
        params.put("token", token);
        params.put("skuIds", skuIds);
        String jsonResult = HttpUtils.sendPost(url, params);
        //将调用京东查询的接口的数据写出给app端
        PrintWriter writer = null;
            try {
               writer = response.getWriter();
               writer.write(jsonResult);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                writer.close();
            }
    }
}
app和pc调用java接口有多种实现方法,以下为你介绍两种常见场景及对应方法: ### 通过Socket连接实现通信 - **PC作为客户**: 在普通Java项目中,可使用WebSocket与app进行通信。示例代码如下: ```java import java.net.URI; // 假设WebClientTest是自定义的WebSocketClient子类 public class WebClientTest extends org.java_websocket.client.WebSocketClient { public WebClientTest(URI serverUri) { super(serverUri); } @Override public void onOpen(org.java_websocket.handshake.ServerHandshake handshakedata) { System.out.println("Connected to the server"); } @Override public void onMessage(String message) { System.out.println("Received message: " + message); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("Connection closed"); } @Override public void onError(Exception ex) { ex.printStackTrace(); } } public class Main { public static void main(String[] args) { try { String str = "ws://xxx.xx.xxx:5554"; WebClientTest client = new WebClientTest(new URI(str)); client.connect(); } catch (Exception e) { e.printStackTrace(); } } } ``` 此代码中,PC作为客户,通过WebSocket连接到指定地址与app进行通信。 - **使用Socket实现简单消息发送**: PC代码如下: ```java import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.Scanner; public class PCClient { public static void main(String[] args) throws IOException { System.out.println("任意字符, 回车键发送Toast"); Scanner scanner = new Scanner(System.in); while (true) { String msg = scanner.next(); sendToast(msg); } } public static void sendToast(String msg) throws IOException { Socket socket = new Socket("127.0.0.1", 8000); DataInputStream dis = new DataInputStream(socket.getInputStream()); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeUTF(msg); socket.close(); } } ``` 该代码实现了PC向指定地址和口的app发送消息的功能。 ### 实现支付宝授权调用app调用Java实现支付宝授权,可通过构造特定的URL进行调用。示例代码如下: ```java import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class AlipayAuth { public static void main(String[] args) { try { String appId = "123456"; String scope = "auth_user"; String redirectUri = "your_callback_url"; String encodedRedirectUri = URLEncoder.encode(redirectUri, "UTF-8"); String authUrl = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=" + appId + "&scope=" + scope + "&redirect_uri=" + encodedRedirectUri; System.out.println(authUrl); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } ``` 此代码构造了一个支付宝授权的URL,app可通过该URL调用Java实现支付宝授权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值