概述
从sap获取数据写入数据库操作
- 一、什么是从sap获取数据?
- 二、如何是从sap获取数据?
- 1.先在controller层写出接口
- 2.在call层写出方法(call层为请求层)
- (1)Gson工具包
- (2)CloseableHttpResponse工具包
- (3)StringEntity工具包
- (4)HttpPost工具包
- (1)接口层
- (5)CredentialsProvider工具包
- (1)接口层
- 3.在postman调用接口(传入给的json格式数据)
一、什么是从sap获取数据?
每个公司拉sap数据方法不一样,有些还需要验证,具体问题,具体分析,这边大致给一个思路
SAP,为“System Applications and Products”的简称,是SAP公司的产品——企业管理解决方案的软件名称。SAP公司(纽交所代码:SAP)成立于1972年。
简而言之就是写一个接口,让别人调用,你发送一个json格式数据过去,对面响应并且返回数据,再写入数据库
二、如何是从sap获取数据?
这种情况下,数据库是不会优先建立的,需要你先得到数据,再去写数据库,最后插入数据
1.先在controller层写出接口
@Slf4j
@RestController
@RequestMapping("接口")
public class TabZmmo3110MaterialDataController {
@PostMapping("地址")
@ResponseBody
public void getHistoryBill(@RequestBody String object) {
System.out.print(object);
log.info("------------call------------");
}
}
2.在call层写出方法(call层为请求层)
@RestController
@RequestMapping("接口")
@Slf4j
public class Zmmo3110MaterialDataCall {
@GetMapping("/地址")
public int execute() throws Exception {
log.info("call---------------");
Map<String, Object> params = new HashMap<String, Object>();
Map<String, Object> p = new HashMap<String, Object>();
p.put("abcde", "122");
p.put("abcdef", "121");
p.put("abcdefg", "222");
p.put("abcdefgh", "111");
p.put("a", "211");
p.put("ab", "2121");
p.put("abc", "1212");
params.put("", p);
String url = "这边写你sap的地址"; //测试
int code = run(params, url);
if (code == 202 || code == 200 || code == 204) {
log.info("请求成功!");
return code;
} else {
log.info("程序异常!");
return code;
}
}
public int run(Map<String, Object> params, String url) {
Gson gson = new Gson();
String pars = gson.toJson(params);
String userName = "test";
String password = "123456";
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(userName, password));
CloseableHttpClient createDefault = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
HttpPost post = new HttpPost(url);
StringEntity entity = new StringEntity(pars.toString(), "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
post.setEntity(entity);
CloseableHttpResponse result = null;
try {
result = createDefault.execute(post);
} catch (IOException e) {
e.printStackTrace();
}
int code = result.getStatusLine().getStatusCode();
return code;
}
}
(1)Gson工具包
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.google.gson;
import com.google.gson.internal.ConstructorConstructor;
import com.google.gson.internal.Excluder;
import com.google.gson.internal.Primitives;
import com.google.gson.internal.Streams;
import com.google.gson.internal.bind.ArrayTypeAdapter;
import com.google.gson.internal.bind.CollectionTypeAdapterFactory;
import com.google.gson.internal.bind.DateTypeAdapter;
import com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory;
import com.google.gson.internal.bind.JsonTreeReader;
import com.google.gson.internal.bind.JsonTreeWriter;
import com.google.gson.internal.bind.MapTypeAdapterFactory;
import com.google.gson.internal.bind.ObjectTypeAdapter;
import com.google.gson.internal.bind.ReflectiveTypeAdapterFactory;
import com.google.gson.internal.bind.SqlDateTypeAdapter;
import com.google.gson.internal.bind.TimeTypeAdapter;
import com.google.gson.internal.bind.TypeAdapters;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import com.google.gson.stream.MalformedJsonException;
import java.io.EOFException;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicLongArray;
public final class Gson {
static final boolean DEFAULT_JSON_NON_EXECUTABLE = false;
static final boolean DEFAULT_LENIENT = false;
static final boolean DEFAULT_PRETTY_PRINT = false;
static final boolean DEFAULT_ESCAPE_HTML = true;
static final boolean DEFAULT_SERIALIZE_NULLS = false;
static final boolean DEFAULT_COMPLEX_MAP_KEYS = false;
static final boolean DEFAULT_SPECIALIZE_FLOAT_VALUES = false;
private static final TypeToken<?> NULL_KEY_SURROGATE = TypeToken.get(Object.class);
private static final String JSON_NON_EXECUTABLE_PREFIX = ")]}'n";
private final ThreadLocal<Map<TypeToken<?>, Gson.FutureTypeAdapter<?>>> calls;
private final Map<TypeToken<?>, TypeAdapter<?>> typeTokenCache;
private final ConstructorConstructor constructorConstructor;
private final JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory;
final List<TypeAdapterFactory> factories;
final Excluder excluder;
final FieldNamingStrategy fieldNamingStrategy;
final Map<Type, InstanceCreator<?>> instanceCreators;
final boolean serializeNulls;
final boolean complexMapKeySerialization;
final boolean generateNonExecutableJson;
final boolean htmlSafe;
final boolean prettyPrinting;
final boolean lenient;
final boolean serializeSpecialFloatingPointValues;
final String datePattern;
final int dateStyle;
final int timeStyle;
final LongSerializationPolicy longSerializationPolicy;
final List<TypeAdapterFactory> builderFactories;
final List<TypeAdapterFactory> builderHierarchyFactories;
public Gson() {
this(Excluder.DEFAULT, FieldNamingPolicy.IDENTITY, Collections.emptyMap(), false, false, false, true, false, false, false, LongSerializationPolicy.DEFAULT, (String)null, 2, 2, Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
}
Gson(Excluder excluder, FieldNamingStrategy fieldNamingStrategy, Map<Type, InstanceCreator<?>> instanceCreators, boolean serializeNulls, boolean complexMapKeySerialization, boolean generateNonExecutableGson, boolean htmlSafe, boolean prettyPrinting, boolean lenient, boolean serializeSpecialFloatingPointValues, LongSerializationPolicy longSerializationPolicy, String datePattern, int dateStyle, int timeStyle, List<TypeAdapterFactory> builderFactories, List<TypeAdapterFactory> builderHierarchyFactories, List<TypeAdapterFactory> factoriesToBeAdded) {
this.calls = new ThreadLocal();
this.typeTokenCache = new ConcurrentHashMap();
this.excluder = excluder;
this.fieldNamingStrategy = fieldNamingStrategy;
this.instanceCreators = instanceCreators;
this.constructorConstructor = new ConstructorConstructor(instanceCreators);
this.serializeNulls = serializeNulls;
this.complexMapKeySerialization = complexMapKeySerialization;
this.generateNonExecutableJson = generateNonExecutableGson;
this.htmlSafe = htmlSafe;
this.prettyPrinting = prettyPrinting;
this.lenient = lenient;
this.serializeSpecialFloatingPointValues = serializeSpecialFloatingPointValues;
this.longSerializationPolicy = longSerializationPolicy;
this.datePattern = datePattern;
this.dateStyle = dateStyle;
this.timeStyle = timeStyle;
this.builderFactories = builderFactories;
this.builderHierarchyFactories = builderHierarchyFactories;
List<TypeAdapterFactory> factories = new ArrayList();
factories.add(TypeAdapters.JSON_ELEMENT_FACTORY);
factories.add(ObjectTypeAdapter.FACTORY);
factories.add(excluder);
factories.addAll(factoriesToBeAdded);
factories.add(TypeAdapters.STRING_FACTORY);
factories.add(TypeAdapters.INTEGER_FACTORY);
factories.add(TypeAdapters.BOOLEAN_FACTORY);
factories.add(TypeAdapters.BYTE_FACTORY);
factories.add(TypeAdapters.SHORT_FACTORY);
TypeAdapter<Number> longAdapter = longAdapter(longSerializationPolicy);
factories.add(TypeAdapters.newFactory(Long.TYPE, Long.class, longAdapter));
factories.add(TypeAdapters.newFactory(Double.TYPE, Double.class, this.doubleAdapter(serializeSpecialFloatingPointValues)));
factories.add(TypeAdapters.newFactory(Float.TYPE, Float.class, this.floatAdapter(serializeSpecialFloatingPointValues)));
factories.add(TypeAdapters.NUMBER_FACTORY);
factories.add(TypeAdapters.ATOMIC_INTEGER_FACTORY);
factories.add(TypeAdapters.ATOMIC_BOOLEAN_FACTORY);
factories.add(TypeAdapters.newFactory(AtomicLong.class, atomicLongAdapter(longAdapter)));
factories.add(TypeAdapters.newFactory(AtomicLongArray.class, atomicLongArrayAdapter(longAdapter)));
factories.add(TypeAdapters.ATOMIC_INTEGER_ARRAY_FACTORY);
factories.add(TypeAdapters.CHARACTER_FACTORY);
factories.add(TypeAdapters.STRING_BUILDER_FACTORY);
factories.add(TypeAdapters.STRING_BUFFER_FACTORY);
factories.add(TypeAdapters.newFactory(BigDecimal.class, TypeAdapters.BIG_DECIMAL));
factories.add(TypeAdapters.newFactory(BigInteger.class, TypeAdapters.BIG_INTEGER));
factories.add(TypeAdapters.URL_FACTORY);
factories.add(TypeAdapters.URI_FACTORY);
factories.add(TypeAdapters.UUID_FACTORY);
factories.add(TypeAdapters.CURRENCY_FACTORY);
factories.add(TypeAdapters.LOCALE_FACTORY);
factories.add(TypeAdapters.INET_ADDRESS_FACTORY);
factories.add(TypeAdapters.BIT_SET_FACTORY);
factories.add(DateTypeAdapter.FACTORY);
factories.add(TypeAdapters.CALENDAR_FACTORY);
factories.add(TimeTypeAdapter.FACTORY);
factories.add(SqlDateTypeAdapter.FACTORY);
factories.add(TypeAdapters.TIMESTAMP_FACTORY);
factories.add(ArrayTypeAdapter.FACTORY);
factories.add(TypeAdapters.CLASS_FACTORY);
factories.add(new CollectionTypeAdapterFactory(this.constructorConstructor));
factories.add(new MapTypeAdapterFactory(this.constructorConstructor, complexMapKeySerialization));
this.jsonAdapterFactory = new JsonAdapterAnnotationTypeAdapterFactory(this.constructorConstructor);
factories.add(this.jsonAdapterFactory);
factories.add(TypeAdapters.ENUM_FACTORY);
factories.add(new ReflectiveTypeAdapterFactory(this.constructorConstructor, fieldNamingStrategy, excluder, this.jsonAdapterFactory));
this.factories = Collections.unmodifiableList(factories);
}
public GsonBuilder newBuilder() {
return new GsonBuilder(this);
}
public Excluder excluder() {
return this.excluder;
}
public FieldNamingStrategy fieldNamingStrategy() {
return this.fieldNamingStrategy;
}
public boolean serializeNulls() {
return this.serializeNulls;
}
public boolean htmlSafe() {
return this.htmlSafe;
}
private TypeAdapter<Number> doubleAdapter(boolean serializeSpecialFloatingPointValues) {
return serializeSpecialFloatingPointValues ? TypeAdapters.DOUBLE : new TypeAdapter<Number>() {
public Double read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return null;
} else {
return in.nextDouble();
}
}
public void write(JsonWriter out, Number value) throws IOException {
if (value == null) {
out.nullValue();
} else {
double doubleValue = value.doubleValue();
Gson.checkValidFloatingPoint(doubleValue);
out.value(value);
}
}
};
}
private TypeAdapter<Number> floatAdapter(boolean serializeSpecialFloatingPointValues) {
return serializeSpecialFloatingPointValues ? TypeAdapters.FLOAT : new TypeAdapter<Number>() {
public Float read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return null;
} else {
return (float)in.nextDouble();
}
}
public void write(JsonWriter out, Number value) throws IOException {
if (value == null) {
out.nullValue();
} else {
float floatValue = value.floatValue();
Gson.checkValidFloatingPoint((double)floatValue);
out.value(value);
}
}
};
}
static void checkValidFloatingPoint(double value) {
if (Double.isNaN(value) || Double.isInfinite(value)) {
throw new IllegalArgumentException(value + " is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method.");
}
}
private static TypeAdapter<Number> longAdapter(LongSerializationPolicy longSerializationPolicy) {
return longSerializationPolicy == LongSerializationPolicy.DEFAULT ? TypeAdapters.LONG : new TypeAdapter<Number>() {
public Number read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return null;
} else {
return in.nextLong();
}
}
public void write(JsonWriter out, Number value) throws IOException {
if (value == null) {
out.nullValue();
} else {
out.value(value.toString());
}
}
};
}
private static TypeAdapter<AtomicLong> atomicLongAdapter(final TypeAdapter<Number> longAdapter) {
return (new TypeAdapter<AtomicLong>() {
public void write(JsonWriter out, AtomicLong value) throws IOException {
longAdapter.write(out, value.get());
}
public AtomicLong read(JsonReader in) throws IOException {
Number value = (Number)longAdapter.read(in);
return new AtomicLong(value.longValue());
}
}).nullSafe();
}
private static TypeAdapter<AtomicLongArray> atomicLongArrayAdapter(final TypeAdapter<Number> longAdapter) {
return (new TypeAdapter<AtomicLongArray>() {
public void write(JsonWriter out, AtomicLongArray value) throws IOException {
out.beginArray();
int i = 0;
for(int length = value.length(); i < length; ++i) {
longAdapter.write(out, value.get(i));
}
out.endArray();
}
public AtomicLongArray read(JsonReader in) throws IOException {
List<Long> list = new ArrayList();
in.beginArray();
while(in.hasNext()) {
long value = ((Number)longAdapter.read(in)).longValue();
list.add(value);
}
in.endArray();
int length = list.size();
AtomicLongArray array = new AtomicLongArray(length);
for(int i = 0; i < length; ++i) {
array.set(i, (Long)list.get(i));
}
return array;
}
}).nullSafe();
}
public <T> TypeAdapter<T> getAdapter(TypeToken<T> type) {
TypeAdapter<?> cached = (TypeAdapter)this.typeTokenCache.get(type == null ? NULL_KEY_SURROGATE : type);
if (cached != null) {
return cached;
} else {
Map<TypeToken<?>, Gson.FutureTypeAdapter<?>> threadCalls = (Map)this.calls.get();
boolean requiresThreadLocalCleanup = false;
if (threadCalls == null) {
threadCalls = new HashMap();
this.calls.set(threadCalls);
requiresThreadLocalCleanup = true;
}
Gson.FutureTypeAdapter<T> ongoingCall = (Gson.FutureTypeAdapter)((Map)threadCalls).get(type);
if (ongoingCall != null) {
return ongoingCall;
} else {
try {
Gson.FutureTypeAdapter<T> call = new Gson.FutureTypeAdapter();
((Map)threadCalls).put(type, call);
Iterator var7 = this.factories.iterator();
TypeAdapter candidate;
do {
if (!var7.hasNext()) {
throw new IllegalArgumentException("GSON (2.8.5) cannot handle " + type);
}
TypeAdapterFactory factory = (TypeAdapterFactory)var7.next();
candidate = factory.create(this, type);
} while(candidate == null);
call.setDelegate(candidate);
this.typeTokenCache.put(type, candidate);
TypeAdapter var10 = candidate;
return var10;
} finally {
((Map)threadCalls).remove(type);
if (requiresThreadLocalCleanup) {
this.calls.remove();
}
}
}
}
}
public <T> TypeAdapter<T> getDelegateAdapter(TypeAdapterFactory skipPast, TypeToken<T> type) {
if (!this.factories.contains(skipPast)) {
skipPast = this.jsonAdapterFactory;
}
boolean skipPastFound = false;
Iterator var4 = this.factories.iterator();
while(var4.hasNext()) {
TypeAdapterFactory factory = (TypeAdapterFactory)var4.next();
if (!skipPastFound) {
if (factory == skipPast) {
skipPastFound = true;
}
} else {
TypeAdapter<T> candidate = factory.create(this, type);
if (candidate != null) {
return candidate;
}
}
}
throw new IllegalArgumentException("GSON cannot serialize " + type);
}
public <T> TypeAdapter<T> getAdapter(Class<T> type) {
return this.getAdapter(TypeToken.get(type));
}
public JsonElement toJsonTree(Object src) {
return (JsonElement)(src == null ? JsonNull.INSTANCE : this.toJsonTree(src, src.getClass()));
}
public JsonElement toJsonTree(Object src, Type typeOfSrc) {
JsonTreeWriter writer = new JsonTreeWriter();
this.toJson(src, typeOfSrc, (JsonWriter)writer);
return writer.get();
}
public String toJson(Object src) {
return src == null ? this.toJson((JsonElement)JsonNull.INSTANCE) : this.toJson((Object)src, (Type)src.getClass());
}
public String toJson(Object src, Type typeOfSrc) {
StringWriter writer = new StringWriter();
this.toJson(src, typeOfSrc, (Appendable)writer);
return writer.toString();
}
public void toJson(Object src, Appendable writer) throws JsonIOException {
if (src != null) {
this.toJson(src, src.getClass(), (Appendable)writer);
} else {
this.toJson((JsonElement)JsonNull.INSTANCE, (Appendable)writer);
}
}
public void toJson(Object src, Type typeOfSrc, Appendable writer) throws JsonIOException {
try {
JsonWriter jsonWriter = this.newJsonWriter(Streams.writerForAppendable(writer));
this.toJson(src, typeOfSrc, jsonWriter);
} catch (IOException var5) {
throw new JsonIOException(var5);
}
}
public void toJson(Object src, Type typeOfSrc, JsonWriter writer) throws JsonIOException {
TypeAdapter<?> adapter = this.getAdapter(TypeToken.get(typeOfSrc));
boolean oldLenient = writer.isLenient();
writer.setLenient(true);
boolean oldHtmlSafe = writer.isHtmlSafe();
writer.setHtmlSafe(this.htmlSafe);
boolean oldSerializeNulls = writer.getSerializeNulls();
writer.setSerializeNulls(this.serializeNulls);
try {
adapter.write(writer, src);
} catch (IOException var13) {
throw new JsonIOException(var13);
} catch (AssertionError var14) {
throw new AssertionError("AssertionError (GSON 2.8.5): " + var14.getMessage(), var14);
} finally {
writer.setLenient(oldLenient);
writer.setHtmlSafe(oldHtmlSafe);
writer.setSerializeNulls(oldSerializeNulls);
}
}
public String toJson(JsonElement jsonElement) {
StringWriter writer = new StringWriter();
this.toJson((JsonElement)jsonElement, (Appendable)writer);
return writer.toString();
}
public void toJson(JsonElement jsonElement, Appendable writer) throws JsonIOException {
try {
JsonWriter jsonWriter = this.newJsonWriter(Streams.writerForAppendable(writer));
this.toJson(jsonElement, jsonWriter);
} catch (IOException var4) {
throw new JsonIOException(var4);
}
}
public JsonWriter newJsonWriter(Writer writer) throws IOException {
if (this.generateNonExecutableJson) {
writer.write(")]}'n");
}
JsonWriter jsonWriter = new JsonWriter(writer);
if (this.prettyPrinting) {
jsonWriter.setIndent(" ");
}
jsonWriter.setSerializeNulls(this.serializeNulls);
return jsonWriter;
}
public JsonReader newJsonReader(Reader reader) {
JsonReader jsonReader = new JsonReader(reader);
jsonReader.setLenient(this.lenient);
return jsonReader;
}
public void toJson(JsonElement jsonElement, JsonWriter writer) throws JsonIOException {
boolean oldLenient = writer.isLenient();
writer.setLenient(true);
boolean oldHtmlSafe = writer.isHtmlSafe();
writer.setHtmlSafe(this.htmlSafe);
boolean oldSerializeNulls = writer.getSerializeNulls();
writer.setSerializeNulls(this.serializeNulls);
try {
Streams.write(jsonElement, writer);
} catch (IOException var11) {
throw new JsonIOException(var11);
} catch (AssertionError var12) {
throw new AssertionError("AssertionError (GSON 2.8.5): " + var12.getMessage(), var12);
} finally {
writer.setLenient(oldLenient);
writer.setHtmlSafe(oldHtmlSafe);
writer.setSerializeNulls(oldSerializeNulls);
}
}
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
Object object = this.fromJson((String)json, (Type)classOfT);
return Primitives.wrap(classOfT).cast(object);
}
public <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException {
if (json == null) {
return null;
} else {
StringReader reader = new StringReader(json);
T target = this.fromJson((Reader)reader, (Type)typeOfT);
return target;
}
}
public <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
JsonReader jsonReader = this.newJsonReader(json);
Object object = this.fromJson((JsonReader)jsonReader, (Type)classOfT);
assertFullConsumption(object, jsonReader);
return Primitives.wrap(classOfT).cast(object);
}
public <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException {
JsonReader jsonReader = this.newJsonReader(json);
T object = this.fromJson(jsonReader, typeOfT);
assertFullConsumption(object, jsonReader);
return object;
}
private static void assertFullConsumption(Object obj, JsonReader reader) {
try {
if (obj != null && reader.peek() != JsonToken.END_DOCUMENT) {
throw new JsonIOException("JSON document was not fully consumed.");
}
} catch (MalformedJsonException var3) {
throw new JsonSyntaxException(var3);
} catch (IOException var4) {
throw new JsonIOException(var4);
}
}
public <T> T fromJson(JsonReader reader, Type typeOfT) throws JsonIOException, JsonSyntaxException {
boolean isEmpty = true;
boolean oldLenient = reader.isLenient();
reader.setLenient(true);
TypeAdapter typeAdapter;
try {
try {
reader.peek();
isEmpty = false;
TypeToken<T> typeToken = TypeToken.get(typeOfT);
typeAdapter = this.getAdapter(typeToken);
T object = typeAdapter.read(reader);
Object var8 = object;
return var8;
} catch (EOFException var15) {
if (!isEmpty) {
throw new JsonSyntaxException(var15);
}
} catch (IllegalStateException var16) {
throw new JsonSyntaxException(var16);
} catch (IOException var17) {
throw new JsonSyntaxException(var17);
} catch (AssertionError var18) {
throw new AssertionError("AssertionError (GSON 2.8.5): " + var18.getMessage(), var18);
}
typeAdapter = null;
} finally {
reader.setLenient(oldLenient);
}
return typeAdapter;
}
public <T> T fromJson(JsonElement json, Class<T> classOfT) throws JsonSyntaxException {
Object object = this.fromJson((JsonElement)json, (Type)classOfT);
return Primitives.wrap(classOfT).cast(object);
}
public <T> T fromJson(JsonElement json, Type typeOfT) throws JsonSyntaxException {
return json == null ? null : this.fromJson((JsonReader)(new JsonTreeReader(json)), (Type)typeOfT);
}
public String toString() {
return "{serializeNulls:" + this.serializeNulls + ",factories:" + this.factories + ",instanceCreators:" + this.constructorConstructor + "}";
}
static class FutureTypeAdapter<T> extends TypeAdapter<T> {
private TypeAdapter<T> delegate;
FutureTypeAdapter() {
}
public void setDelegate(TypeAdapter<T> typeAdapter) {
if (this.delegate != null) {
throw new AssertionError();
} else {
this.delegate = typeAdapter;
}
}
public T read(JsonReader in) throws IOException {
if (this.delegate == null) {
throw new IllegalStateException();
} else {
return this.delegate.read(in);
}
}
public void write(JsonWriter out, T value) throws IOException {
if (this.delegate == null) {
throw new IllegalStateException();
} else {
this.delegate.write(out, value);
}
}
}
}
(2)CloseableHttpResponse工具包
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.apache.http.impl.execchain;
import java.io.IOException;
import java.util.Locale;
import org.apache.http.Header;
import org.apache.http.HeaderIterator;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.params.HttpParams;
class HttpResponseProxy implements CloseableHttpResponse {
private final HttpResponse original;
private final ConnectionHolder connHolder;
public HttpResponseProxy(HttpResponse original, ConnectionHolder connHolder) {
this.original = original;
this.connHolder = connHolder;
ResponseEntityProxy.enchance(original, connHolder);
}
public void close() throws IOException {
if (this.connHolder != null) {
this.connHolder.close();
}
}
public StatusLine getStatusLine() {
return this.original.getStatusLine();
}
public void setStatusLine(StatusLine statusline) {
this.original.setStatusLine(statusline);
}
public void setStatusLine(ProtocolVersion ver, int code) {
this.original.setStatusLine(ver, code);
}
public void setStatusLine(ProtocolVersion ver, int code, String reason) {
this.original.setStatusLine(ver, code, reason);
}
public void setStatusCode(int code) throws IllegalStateException {
this.original.setStatusCode(code);
}
public void setReasonPhrase(String reason) throws IllegalStateException {
this.original.setReasonPhrase(reason);
}
public HttpEntity getEntity() {
return this.original.getEntity();
}
public void setEntity(HttpEntity entity) {
this.original.setEntity(entity);
}
public Locale getLocale() {
return this.original.getLocale();
}
public void setLocale(Locale loc) {
this.original.setLocale(loc);
}
public ProtocolVersion getProtocolVersion() {
return this.original.getProtocolVersion();
}
public boolean containsHeader(String name) {
return this.original.containsHeader(name);
}
public Header[] getHeaders(String name) {
return this.original.getHeaders(name);
}
public Header getFirstHeader(String name) {
return this.original.getFirstHeader(name);
}
public Header getLastHeader(String name) {
return this.original.getLastHeader(name);
}
public Header[] getAllHeaders() {
return this.original.getAllHeaders();
}
public void addHeader(Header header) {
this.original.addHeader(header);
}
public void addHeader(String name, String value) {
this.original.addHeader(name, value);
}
public void setHeader(Header header) {
this.original.setHeader(header);
}
public void setHeader(String name, String value) {
this.original.setHeader(name, value);
}
public void setHeaders(Header[] headers) {
this.original.setHeaders(headers);
}
public void removeHeader(Header header) {
this.original.removeHeader(header);
}
public void removeHeaders(String name) {
this.original.removeHeaders(name);
}
public HeaderIterator headerIterator() {
return this.original.headerIterator();
}
public HeaderIterator headerIterator(String name) {
return this.original.headerIterator(name);
}
public HttpParams getParams() {
return this.original.getParams();
}
public void setParams(HttpParams params) {
this.original.setParams(params);
}
public String toString() {
StringBuilder sb = new StringBuilder("HttpResponseProxy{");
sb.append(this.original);
sb.append('}');
return sb.toString();
}
}
(3)StringEntity工具包
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.apache.http.entity;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.UnsupportedCharsetException;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.Args;
public class StringEntity extends AbstractHttpEntity implements Cloneable {
protected final byte[] content;
public StringEntity(String string, ContentType contentType) throws UnsupportedCharsetException {
Args.notNull(string, "Source string");
Charset charset = contentType != null ? contentType.getCharset() : null;
if (charset == null) {
charset = HTTP.DEF_CONTENT_CHARSET;
}
this.content = string.getBytes(charset);
if (contentType != null) {
this.setContentType(contentType.toString());
}
}
/** @deprecated */
@Deprecated
public StringEntity(String string, String mimeType, String charset) throws UnsupportedEncodingException {
Args.notNull(string, "Source string");
String mt = mimeType != null ? mimeType : "text/plain";
String cs = charset != null ? charset : "ISO-8859-1";
this.content = string.getBytes(cs);
this.setContentType(mt + "; charset=" + cs);
}
public StringEntity(String string, String charset) throws UnsupportedCharsetException {
this(string, ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), charset));
}
public StringEntity(String string, Charset charset) {
this(string, ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), charset));
}
public StringEntity(String string) throws UnsupportedEncodingException {
this(string, ContentType.DEFAULT_TEXT);
}
public boolean isRepeatable() {
return true;
}
public long getContentLength() {
return (long)this.content.length;
}
public InputStream getContent() throws IOException {
return new ByteArrayInputStream(this.content);
}
public void writeTo(OutputStream outStream) throws IOException {
Args.notNull(outStream, "Output stream");
outStream.write(this.content);
outStream.flush();
}
public boolean isStreaming() {
return false;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
(4)HttpPost工具包
(1)接口层
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.apache.http.client.methods;
import java.net.URI;
public class HttpPost extends HttpEntityEnclosingRequestBase {
public static final String METHOD_NAME = "POST";
public HttpPost() {
}
public HttpPost(URI uri) {
this.setURI(uri);
}
public HttpPost(String uri) {
this.setURI(URI.create(uri));
}
public String getMethod() {
return "POST";
}
}
(5)CredentialsProvider工具包
(1)接口层
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.apache.http.client;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
public interface CredentialsProvider {
void setCredentials(AuthScope var1, Credentials var2);
Credentials getCredentials(AuthScope var1);
void clear();
}
3.在postman调用接口(传入给的json格式数据)
http://网关地址:端口号/服务名称/接口地址
再传入json,等待响应,当后台读取到你传输的json,就说明接口通了
此时把接口返回给sap,等待数据返回
最后
以上就是雪白白云为你收集整理的从sap获取数据写入数据库操作一、什么是从sap获取数据?二、如何是从sap获取数据?的全部内容,希望文章能够帮你解决从sap获取数据写入数据库操作一、什么是从sap获取数据?二、如何是从sap获取数据?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复