【linux】如何将python脚本作为linux服务启动
1,如何将python脚本" title="python脚本">python脚本作为linux服务启动,并用javaweb用post请求传参。
httpPost(127.0.0.1/app, jsonParam)
回答
服务端代码
python-flask编写
from flask import Flaskfrom 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 请求
用supervisor应该可以解决你的问题
如果是定时的任务,crontab应该也可以解决
你是想用 python 搭一个 web 服务器吧?
如果需求很简单,可以试试BaseHttpServer
https://docs.python.org/2/lib...
复杂一点的 python 框架有很多, 如 Django
以上是 【linux】如何将python脚本作为linux服务启动 的全部内容, 来源链接: utcz.com/a/84450.html