如何将python脚本作为linux服务启动

1,如何将python脚本作为linux服务启动,并用javaweb用post请求传参。
httpPost(127.0.0.1/app, jsonParam)

阅读 3.6k
4 个回答

服务端代码

python-flask编写

from flask import Flask
from flask import request
import json

@app.route("/" , methods=["POST"])
def hello_world():
    rev = request.json
    print(rev)
    return json.dumps( rev )



if __name__ == '__main__':
   app.run(
       host='192.168.80.132'
    )

客户端代码

package model;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * <p>Title : Client </p>
 * <p>Description : 请求服务器地址</p>
 *
 * @author huifer
 * @date 2018/10/24
 */
public class Client {


    public static void main(String args[]) {
        try {
            JSONObject  obj = new JSONObject();
            obj.append("field_1", "1");
            obj.append("field_2", 2);

            CloseableHttpClient httpclient = HttpClients.createDefault();
            System.out.println(obj);

            HttpPost httpPost = new HttpPost("http://192.168.80.132:5000");
            httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");

            // 解决中文乱码问题
            StringEntity stringEntity = new StringEntity(obj.toString(), "UTF-8");
            stringEntity.setContentEncoding("UTF-8");

            httpPost.setEntity(stringEntity);


            System.out.println("Executing request " + httpPost.getRequestLine());

            ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
                @Override
                public String handleResponse(final HttpResponse response)
                        throws ClientProtocolException, IOException {
                    int status = response.getStatusLine().getStatusCode();
                    if (status >= 200 && status < 300) {

                        HttpEntity entity = response.getEntity();

                        return entity != null ? EntityUtils.toString(entity) : null;
                    } else {
                        throw new ClientProtocolException(
                                "Unexpected response status: " + status);
                    }
                }
            };
            String responseBody = httpclient.execute(httpPost, responseHandler);
            System.out.println("----------------------------------------");
            System.out.println(responseBody);

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

运行截图

图片描述
先用postman 请求一次

图片描述

再用JAVA HttpClient 请求
03

用supervisor应该可以解决你的问题

如果是定时的任务,crontab应该也可以解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题